Browse Source

Merge remote-tracking branch 'remotes/origin/dev_resi_export' into develop

dev
jianjun 4 years ago
parent
commit
615bd71688
  1. 38
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/handler/ExcelFillCellMergeStrategy.java
  2. 213
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/handler/ExcelMergeStrategy.java
  3. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/handler/FreezeAndFilter.java
  4. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcFollowUpRecordController.java
  5. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java
  6. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  7. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java
  8. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVaccineController.java
  9. 12
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java
  10. 57
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java
  11. 45
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java
  12. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  13. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java

38
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/handler/ExcelFillCellMergeStrategy.java

@ -15,11 +15,18 @@ import java.util.List;
/**
* desc:单元格合并策略
*
* @author liujianjun
*/
public class ExcelFillCellMergeStrategy implements CellWriteHandler {
/**
* 需要合并的列 下标
*/
private int[] mergeColumnIndex;
/**
* 从下标n行开始合并
*/
private int mergeRowIndex;
public ExcelFillCellMergeStrategy() {
@ -45,19 +52,18 @@ public class ExcelFillCellMergeStrategy implements CellWriteHandler {
public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<WriteCellData<?>> list, Cell cell, Head head, Integer integer, Boolean aBoolean) {
int curRowIndex = cell.getRowIndex();
int curColIndex = cell.getColumnIndex();
int size = list.size();
System.out.println(size);
if (curRowIndex <= mergeRowIndex) {
return;
}
//如果不指定 合并的列则全部列进行 合并判断
if (mergeColumnIndex == null) {
if (curRowIndex > 2) {
mergeWithPrevRow(writeSheetHolder, cell, curRowIndex, curColIndex);
}
}else{
if (curRowIndex > mergeRowIndex) {
for (int i = 0; i < mergeColumnIndex.length; i++) {
if (curColIndex == mergeColumnIndex[i]) {
mergeWithPrevRow(writeSheetHolder, cell, curRowIndex, curColIndex);
break;
}
mergeWithPrevRow(writeSheetHolder, cell, curRowIndex, curColIndex);
} else {
//合并指定的列号
for (int columnIndex : mergeColumnIndex) {
if (curColIndex == columnIndex) {
mergeWithPrevRow(writeSheetHolder, cell, curRowIndex, curColIndex);
break;
}
}
}
@ -72,7 +78,6 @@ public class ExcelFillCellMergeStrategy implements CellWriteHandler {
* @param curColIndex 当前列
*/
private void mergeWithPrevRow(WriteSheetHolder writeSheetHolder, Cell cell, int curRowIndex, int curColIndex) {
//writeSheetHolder.getExcelWriteHeadProperty().
// 当前行的第一个Cell
Cell curFirstCell = cell.getSheet().getRow(curRowIndex).getCell(0);
Object curFirstData = curFirstCell.getCellType() == CellType.STRING ? curFirstCell.getStringCellValue() : curFirstCell.getNumericCellValue();
@ -88,7 +93,10 @@ public class ExcelFillCellMergeStrategy implements CellWriteHandler {
Boolean dataBool = preData.equals(curData);
//此处需要注意:因为我是按照序号确定是否需要合并的,所以获取每一行第一列数据和上一行第一列数据进行比较,如果相等合并
Boolean bool = cell.getRow().getCell(0).getStringCellValue().equals(cell.getSheet().getRow(curRowIndex - 1).getCell(0).getStringCellValue());
if (dataBool && bool) {
if (!dataBool || !bool) {
return;
}
Sheet sheet = writeSheetHolder.getSheet();
List<CellRangeAddress> mergeRegions = sheet.getMergedRegions();
boolean isMerged = false;
@ -107,7 +115,7 @@ public class ExcelFillCellMergeStrategy implements CellWriteHandler {
CellRangeAddress cellRangeAddress = new CellRangeAddress(curRowIndex - 1, curRowIndex, curColIndex, curColIndex);
sheet.addMergedRegion(cellRangeAddress);
}
}
}
}

213
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/handler/ExcelMergeStrategy.java

@ -1,213 +0,0 @@
package com.epmet.commons.tools.utils.poi.excel.handler;
/**
* desc:
*
* @author: LiuJanJun
* @date: 2022/4/26 1:36 下午
* @version: 1.0
*/
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.metadata.data.CellData;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.write.handler.CellWriteHandler;
import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.util.CellRangeAddress;
import java.util.List;
import java.util.Objects;
import java.util.stream.IntStream;
/**
* 相同值合并策略
*/
public class ExcelMergeStrategy implements CellWriteHandler {
/**
* 合并起始行
*/
private int mergeRowIndex;
/**
* 多少行合并一次
*/
private int eachRow;
/**
* 合并字段的下标
*/
private int[] mergeColumnIndex;
public ExcelMergeStrategy(int mergeRowIndex, int[] mergeColumnIndex, int eachRow) {
if (mergeRowIndex < 0) {
throw new IllegalArgumentException("mergeRowIndex must be greater than 0");
}
if (eachRow < 0) {
throw new IllegalArgumentException("eachRow must be greater than 0");
}
this.mergeRowIndex = mergeRowIndex;
this.mergeColumnIndex = mergeColumnIndex;
this.eachRow = eachRow;
}
@Override
public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Head head, Integer columnIndex, Integer relativeRowIndex, Boolean isHead) {
}
@Override
public void afterCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
}
// @Override
public void afterCellDataConverted(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, CellData cellData, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
int curRowIndex = cell.getRowIndex();
//当前列
int curColIndex = cell.getColumnIndex();
//合并条件:
//1.当前行>合并起始行,默认标题行(0)不参加合并
//2.间隔行(eachRow)的上下两条不参加合并
//2.1间隔行(eachRow)==0时,不设置间隔
if (isMerge(curRowIndex)) {
IntStream.range(0, mergeColumnIndex.length).anyMatch(i -> {
if (curColIndex == mergeColumnIndex[i]) {
mergeWithPrevRow(writeSheetHolder, cellData, cell, curRowIndex, curColIndex);
return true;
}
return false;
});
}
}
@Override
public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, List<WriteCellData<?>> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
}
/**
* 判断是否合并
* <p>
* 1.当前位置必须大于开始位置curRowIndex > mergeRowIndex
* <p>
* 2.根据eachRow 判断数据分割的间隔
* <p>
* 2.1如果根据eachRow=0默认不合并
* <p>
* 2.2如果1如果根据eachRow>0,分割后的第一条数据不会与之前的合并curRowIndex-mergeRowIndex%eachRow==0
*
* @return
*/
private boolean isMerge(Integer curRowIndex) {
if ((curRowIndex > mergeRowIndex) && eachRow > 0) {
if ((curRowIndex - mergeRowIndex) % eachRow == 0) {
return false;
}
return true;
}
return false;
}
private void mergeWithPrevRow(WriteSheetHolder writeSheetHolder, CellData cellData, Cell cell, int curRowIndex, int curColIndex) {
//获取当前行的当前列的数据和上一行的当前列列数据,通过上一行数据是否相同进行合并
Object curData = cellData.getType() == CellDataTypeEnum.STRING ? cellData.getStringValue() : cellData.getNumberValue();
Cell preCell = cell.getSheet().getRow(curRowIndex - 1).getCell(curColIndex);
Object preData = preCell.getCellTypeEnum() == CellType.STRING ? preCell.getStringCellValue() :
preCell.getNumericCellValue();
// 比较当前行的第一列的单元格与上一行是否相同,相同合并当前单元格与上一行
if (Objects.equals(curData, preData)) {
Sheet sheet = writeSheetHolder.getSheet();
List<CellRangeAddress> mergeRegions = sheet.getMergedRegions();
boolean isMerged = false;
for (int i = 0; i < mergeRegions.size() && !isMerged; i++) {
CellRangeAddress cellRangeAddr = mergeRegions.get(i);
// 若上一个单元格已经被合并,则先移出原有的合并单元,再重新添加合并单元
if (cellRangeAddr.isInRange(curRowIndex - 1, curColIndex)) {
sheet.removeMergedRegion(i);
cellRangeAddr.setLastRow(curRowIndex);
sheet.addMergedRegion(cellRangeAddr);
isMerged = true;
}
}
// 若上一个单元格未被合并,则新增合并单元
if (!isMerged) {
CellRangeAddress cellRangeAddress = new CellRangeAddress(curRowIndex - 1, curRowIndex, curColIndex,
curColIndex);
sheet.addMergedRegion(cellRangeAddress);
}
}
}
}

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/FreezeAndFilter.java → epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/poi/excel/handler/FreezeAndFilter.java

@ -1,4 +1,4 @@
package com.epmet.commons.tools.utils.poi.excel;
package com.epmet.commons.tools.utils.poi.excel.handler;
/**
* desc:easyExcel 冻结标题

2
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcFollowUpRecordController.java

@ -12,7 +12,7 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.poi.excel.FreezeAndFilter;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.DefaultGroup;

3
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcNatController.java

@ -16,12 +16,11 @@ import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.*;
import com.epmet.commons.tools.utils.poi.excel.FreezeAndFilter;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dto.IcNatDTO;
import com.epmet.dto.form.AddIcNatFormDTO;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.form.MyNatListFormDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.dto.result.MyNatListResultDTO;

2
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java

@ -44,7 +44,7 @@ import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.*;
import com.epmet.commons.tools.utils.poi.excel.FreezeAndFilter;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constant.SystemMessageType;
import com.epmet.constants.ImportTaskConstants;

2
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java

@ -17,7 +17,7 @@ import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.*;
import com.epmet.commons.tools.utils.poi.excel.FreezeAndFilter;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constant.IcResiUserConstant;
import com.epmet.constants.ImportTaskConstants;

3
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVaccineController.java

@ -16,10 +16,9 @@ import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.*;
import com.epmet.commons.tools.utils.poi.excel.FreezeAndFilter;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.form.VaccineListFormDTO;
import com.epmet.dto.result.IcVaccineListCommonExcelResultDTO;
import com.epmet.dto.result.IcVaccineListResultDTO;

12
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java

@ -1,5 +1,6 @@
package com.epmet.service;
import com.epmet.commons.tools.dto.result.OptionResultDTO;
import com.epmet.dto.result.FormItemResult;
import com.epmet.service.impl.IcResiUserImportServiceImpl;
@ -51,4 +52,15 @@ public interface IcResiUserImportService {
* @return
*/
Map<String, String> listRemoteOptions(String pureUri, String cascadeItemId, Map<String, IcResiUserImportServiceImpl.ColumnWrapper> columnWrappers, String currUserAgencyId, String purpose);
/**
* desc:获取级联的远程 选项
* @param part
* @param part1
* @param columnWrappers
* @param currentStaffAgencyId
* @param query
* @return
*/
Map<String, OptionResultDTO> listRemoteCascadeOptions(String part, String part1, Map<String, IcResiUserImportServiceImpl.ColumnWrapper> columnWrappers, String currentStaffAgencyId, String query);
}

57
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java

@ -12,6 +12,7 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.form.IcExportTemplateSaveFormDTO;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.dto.result.OptionResultDTO;
import com.epmet.commons.tools.enums.FormItemTypeEnum;
import com.epmet.commons.tools.enums.IcFormCodeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
@ -21,7 +22,7 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.commons.tools.utils.poi.excel.FreezeAndFilter;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.utils.poi.excel.handler.ExcelFillCellMergeStrategy;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constant.IcResiUserConstant;
@ -119,7 +120,6 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
}
int[] mergeColumnIndex = mergeColumnIndexList.stream().filter(Objects::nonNull).mapToInt(i->i).toArray();
// 从那一列开始合并
int mergeRowIndex = exportConfigData.getHeaderRow();
@ -130,15 +130,15 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
//todo 表头固定不正确
FreezeAndFilter writeHandler = new FreezeAndFilter();
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("居民基本信息.xlsx", response))
.registerWriteHandler(new ExcelFillCellMergeStrategy(mergeRowIndex, mergeColumnIndex))
.registerWriteHandler(writeHandler).build();
WriteSheet writeSheet = EasyExcel.writerSheet()
.registerWriteHandler(horizontalCellStyleStrategy)
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
.head(exportConfigData.getHeaders()).build();
.registerWriteHandler(writeHandler).build();
WriteSheet writeSheet = EasyExcel.writerSheet().head(exportConfigData.getHeaders()).build();
String staffOrgPath = null;
if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) {
@ -163,7 +163,6 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
result.forEach(o -> {
List<Object> singleResult = new ArrayList<>();
Map<String,Object> originalConditionMap = new ConcurrentHashMap<>();
log.info("==========居民信息:{}",JSON.toJSONString(o));
o.forEach((key,value) -> {
List<IcCustomExportResultDTO.SqlColumn> showSqlColumns = exportConfigData.getShowSqlColumns();
Map<String, IcCustomExportResultDTO.SqlColumn> itemMap = showSqlColumns.stream().collect(Collectors.toMap(IcCustomExportResultDTO.SqlColumn::getColumnName, item -> item));
@ -195,7 +194,6 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
});
resultData.add(singleResult);
});
log.info("需要写入的data长度:{}", resultData.size());
excelWriter.write(resultData, writeSheet);
//todo
break;
@ -209,6 +207,11 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
}
}
/**
* desc:校验查询表单参数
* @param tokenDto
* @param exportResiUserFormDTO
*/
public void validateSearchForm(TokenDto tokenDto, ExportResiUserFormDTO exportResiUserFormDTO) {
IcResiUserPageFormDTO searchForm = exportResiUserFormDTO.getSearchForm();
searchForm.setCustomerId(tokenDto.getCustomerId());
@ -246,8 +249,6 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
private static Map<String, Cache<String,String>> remoteOptionCacheMap = new HashMap<>();
private void putRemoteValue(Set<FormItemResult> conditionItemSet, String currentStaffAgencyId, Map<String, Object> map, Map<String, Object> originalConditionMap, FormItemResult e, String columnName, String vauleStr) {
try {
log.info("========putRemoteValue:formItemResult:{}",e.getLabel());
log.info("========putRemoteValue:columnName:{},vauleStr:{}",columnName,vauleStr);
Map<String, IcResiUserImportServiceImpl.ColumnWrapper> columnWrappers = new HashMap<>();
if (e.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)){
for (FormItemResult o : conditionItemSet) {
@ -267,23 +268,37 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
} else {
String[] parts = icResiUserImportService.splitOptionSourceUrl(e.getOptionSourceValue());
//todo 不支持多个itemId
Map<String, String> 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())) {
remoteOptions.forEach((label, value) -> {
if (FormItemTypeEnum.CASCADER.getCode().equals(e.getItemType())) {
Map<String, OptionResultDTO> remoteOptions = icResiUserImportService.listRemoteCascadeOptions(parts[0], parts[1], columnWrappers, currentStaffAgencyId, "query");
List<String> listOptions = new ArrayList<>();
remoteOptions.forEach((value,label) -> {
//todo 看看怎么更好的利用本地缓存
if (vauleStr.equals(value)) {
map.put(columnName, label);
listOptions.add(label.getLabel());
}
cache.put(value,label);
});
String join = Joiner.on("-").join(listOptions);
cache.put(vauleStr,join);
map.put(columnName, join);
}else {
//todo 不支持多个itemId
Map<String, String> remoteOptions = icResiUserImportService.listRemoteOptions(parts[0], parts[1], columnWrappers, currentStaffAgencyId, "query");
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())) {
remoteOptions.forEach((label, value) -> {
if (vauleStr.equals(value)) {
map.put(columnName, label);
}
//放if外面是为了下次取得时候 可以有值
cache.put(value,label);
});
}
}
}
} catch (Exception ex) {
log.error("listRemoteOptions url", ex);
log.warn("listRemoteOptions url", ex);
}
}

45
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java

@ -23,10 +23,7 @@ import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.EpmetRequestHolder;
import com.epmet.commons.tools.utils.FileUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.*;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dao.IcResiUserDao;
import com.epmet.dao.IcUserChangeDetailedDao;
@ -1285,6 +1282,46 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
}
@Override
public Map<String, OptionResultDTO> listRemoteCascadeOptions(String pureUri, String cascadeItemId, Map<String, ColumnWrapper> columnWrappers, String currentStaffAgencyId, String query) {
ColumnWrapper cascadeItemColumnWrapper = null;
// 根据uri上的id,找到关联的itemid,从而找到关联的item的值
if (columnWrappers != null && StringUtils.isNotBlank(cascadeItemId)){
cascadeItemColumnWrapper = columnWrappers.get(cascadeItemId);
}
List<OptionResultDTO> options = null;
switch (pureUri) {
case "/heart/icresidemanddict/demandoption":
options = getResultDataOrThrowsException(epmetUserOpenFeignClient.getDemandOptions(), ServiceConstant.EPMET_USER_SERVER,
EpmetErrorCode.SERVER_ERROR.getCode(), null, null);
break;
}
if (options == null) {
return null;
}
Map<String, OptionResultDTO> resultMap = new HashMap<>();
options.forEach(option-> getChildren(option,resultMap));
return resultMap;
}
/**
* desc:递归获取children
* @param option
* @param resultMap
* todo 利用泛型 提取到公共类中
*/
public void getChildren(OptionResultDTO option, Map<String, OptionResultDTO> resultMap) {
resultMap.put(option.getValue(),option);
if (CollectionUtils.isNotEmpty(option.getChildren())){
option.getChildren().forEach(o->{
resultMap.put(o.getValue(),o);
getChildren(o,resultMap);
});
}
}
/**
* 更新主表中人员类别标记
* @param icResiUserTableEnum

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

@ -774,8 +774,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
List<SubTableJoinDTO> subTables =subTablesRes.getData();
// log.info("1、所有的子表subTables:"+JSON.toJSONString(subTables,true));
//关联哪些子表:查询条件用到的表名+查询的列对应的表 并集去重
Set<String> whereConditionTables=conditions.stream().map(ResiUserQueryValueDTO::getTableName).collect(Collectors.toSet());
Set<String> tables = new HashSet<>(whereConditionTables);
Set<String> tables = conditions.stream().map(ResiUserQueryValueDTO::getTableName).collect(Collectors.toSet());
tables.add(resultTableName);
if (CollectionUtils.isNotEmpty(exportNeedTableList)){
tables.addAll(exportNeedTableList);
@ -794,7 +793,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
}
});
map.put("finalSubTables",finalSubTables);
map.put("groupByTables",groupByTables.stream().collect(Collectors.toList()));
map.put("groupByTables", new ArrayList<>(groupByTables));
return map;
}

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

@ -42,7 +42,7 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.YuShanSysApiService;
import com.epmet.commons.tools.utils.poi.excel.FreezeAndFilter;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.constant.SystemMessageType;
import com.epmet.dao.PatrolRoutineWorkDao;
import com.epmet.dao.StatsStaffPatrolRecordDailyDao;

Loading…
Cancel
Save