Browse Source

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

release
jianjun 3 years ago
parent
commit
bba26ecfd6
  1. 20
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/OptionResultDTO.java
  2. 3
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml
  3. 2
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml
  4. 24
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java
  5. 1
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateDao.xml
  6. 21
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AttentionDetailFormDTO.java
  7. 27
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcVaccineFormDTO.java
  8. 1
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VaccinationListResultDTO.java
  9. 13
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicSpecialAttentionController.java
  10. 29
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  11. 13
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcVaccineController.java
  12. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcEpidemicSpecialAttentionDao.java
  13. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcEpidemicSpecialAttentionService.java
  14. 7
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcVaccineService.java
  15. 11
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcEpidemicSpecialAttentionServiceImpl.java
  16. 78
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java
  17. 21
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java
  18. 18
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccineServiceImpl.java
  19. 16
      epmet-user/epmet-user-server/src/main/resources/mapper/IcEpidemicSpecialAttentionDao.xml

20
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/OptionResultDTO.java

@ -1,9 +1,11 @@
package com.epmet.commons.tools.dto.result;
import lombok.Data;
import org.apache.commons.collections4.CollectionUtils;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* @Description
@ -21,4 +23,22 @@ public class OptionResultDTO implements Serializable {
private List<OptionResultDTO> children;
private Boolean usableFlag;
private String type;
/**
* desc:递归获取当前节点的 所有子节点
*
* @param option
* @param resultMap
*/
public void getCurrenNodeAllChild(OptionResultDTO option, Map<String, OptionResultDTO> resultMap) {
resultMap.put(option.getValue(), option);
if (CollectionUtils.isNotEmpty(option.getChildren())) {
return;
}
option.getChildren().forEach(o -> {
resultMap.put(o.getValue(), o);
getCurrenNodeAllChild(o, resultMap);
});
}
}

3
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcBuildingDao.xml

@ -120,7 +120,8 @@
</if>
AND a.DEL_FLAG = '0'
</where>
order by a.CREATED_TIME, a.BUILDING_NAME
ORDER BY CAST(b.NEIGHBOR_HOOD_NAME AS SIGNED),CONVERT(b.NEIGHBOR_HOOD_NAME using gbk),
CAST(a.BUILDING_NAME AS SIGNED),CONVERT(a.BUILDING_NAME USING gbk)
</select>
<select id="searchAllBuilding" resultType="com.epmet.excel.IcBuildingExcel">
select

2
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml

@ -143,7 +143,7 @@
AND a.DEL_FLAG = '0'
</where>
ORDER BY a.CREATED_TIME
ORDER BY CAST(a.NEIGHBOR_HOOD_NAME AS SIGNED),CONVERT(a.NEIGHBOR_HOOD_NAME using gbk)
</select>
<select id="searchAllNeighborhood" resultType="com.epmet.excel.IcNeighborHoodExcel">
select

24
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java

@ -3,6 +3,7 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
@ -11,6 +12,7 @@ import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.form.IcExportItemListFormDTO;
import com.epmet.commons.tools.dto.form.IcExportTemplateSaveFormDTO;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
@ -119,6 +121,12 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
if (formDTO.getIsSaveTemp()) {
List<IcExportTemplateDTO> templist = baseDao.selectByAgencyId(agencyInfo.getId());
if (!CollectionUtils.isEmpty(templist)) {
//增加校验 同组织内模板名不能重复
templist.forEach(t -> {
if (formDTO.getName().equals(t.getName())) {
throw new EpmetException(9999, "当前组织下已存在相同名称的模板!", "当前组织下已存在相同名称的模板!");
}
});
sort = templist.get(NumConstant.ZERO).getSort() + NumConstant.ONE;
}
tempId = UUID.randomUUID().toString().replace("-", "");
@ -128,8 +136,6 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
tempEntity.setPids(StringUtils.isEmpty(agencyInfo.getPids()) ? agencyInfo.getId() : agencyInfo.getPids() + ":" + agencyInfo.getId());
tempEntity.setFormCode(formDTO.getFormCode());
tempEntity.setName(formDTO.getName());
/*tempEntity.setType();
tempEntity.setUrl();*/
tempEntity.setSort(sort);
}
@ -155,7 +161,7 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
//1.遍历一级表单项
for (IcExportItemListFormDTO dto : dataList) {
IcExportTemplateConfigEntity itemEntity = ConvertUtils.sourceToTarget(dto, IcExportTemplateConfigEntity.class);
itemEntity.setId(UUID.randomUUID().toString().replace("-", ""));
itemEntity.setId(IdWorker.getIdStr());
itemEntity.setPid(pid);
itemEntity.setCustomerId(customerId);
itemEntity.setTempId(tempId);
@ -204,16 +210,16 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
}
if (CollectionUtils.isEmpty(list)) {
return null;
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"模板配置错误,请确认模板是否存在!","模板配置错误,请确认模板是否存在!");
}
Map<String, List<IcExportTemplateForExportResultDTO>> resultTemp = list.stream().collect(Collectors.groupingBy(IcExportTemplateForExportResultDTO::getPid, LinkedHashMap::new, Collectors.toList()));
Map<String, List<IcExportTemplateForExportResultDTO>> resultTemp = list.stream()
.collect(Collectors.groupingBy(IcExportTemplateForExportResultDTO::getPid, LinkedHashMap::new, Collectors.toList()));
List<List<String>> headerList = new ArrayList<>();
List<IcCustomExportResultDTO.SqlColumn> showSqlColumns = new ArrayList<>();
List<IcCustomExportResultDTO.SqlColumn> hiddenSqlColumns = new ArrayList<>();
Set<String> hasExistColumnSet = new HashSet<>();
resultTemp.get(NumConstant.ZERO_STR)
.forEach(root -> recursionData(resultTemp, root, headerList, showSqlColumns, hiddenSqlColumns, hasExistColumnSet));
resultTemp.get(NumConstant.ZERO_STR).forEach(root -> recursionData(resultTemp, root, headerList, showSqlColumns, hasExistColumnSet));
//组织 关联item项的
if (hasExistColumnSet.size() > NumConstant.ZERO) {
Set<String> configItemIdSet = list.stream().map(IcExportTemplateForExportResultDTO::getItemId).collect(Collectors.toSet());
@ -294,7 +300,7 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
return baseDao.getTemplateDetail(formDTO.getId());
}
private void recursionData(Map<String, List<IcExportTemplateForExportResultDTO>> resultTemp, IcExportTemplateForExportResultDTO root, List<List<String>> headerList, List<IcCustomExportResultDTO.SqlColumn> showSqlColumns, List<IcCustomExportResultDTO.SqlColumn> hiddenSqlColumns, Set<String> hasExistColumnSet) {
private void recursionData(Map<String, List<IcExportTemplateForExportResultDTO>> resultTemp, IcExportTemplateForExportResultDTO root, List<List<String>> headerList, List<IcCustomExportResultDTO.SqlColumn> showSqlColumns, Set<String> hasExistColumnSet) {
if (StringUtils.isNotBlank(root.getColumnName())) {
showSqlColumns.add(new IcCustomExportResultDTO.SqlColumn(root.getItemId(),root.getTableName(),root.isSupportAdd(), root.getColumnName(),root.getOptionSourceType()));
if (StringUtils.isNotBlank(root.getOptionSourceValue())&&root.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)) {
@ -312,7 +318,7 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
headerGroupList.add(root.getLabel());
headerGroupList.add(o.getLabel());
headerList.add(headerGroupList);
recursionData(resultTemp, o, headerList, showSqlColumns, hiddenSqlColumns, hasExistColumnSet);
recursionData(resultTemp, o, headerList, showSqlColumns, hasExistColumnSet);
});
}

1
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateDao.xml

@ -53,6 +53,7 @@
ic_export_template_config
where DEL_FLAG = 0
and TEMP_ID = #{tempId}
and PID = '0'
order by SORT
</select>

21
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AttentionDetailFormDTO.java

@ -0,0 +1,21 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2022/4/27 15:30
* @DESC
*/
@Data
public class AttentionDetailFormDTO implements Serializable {
private static final long serialVersionUID = -8257288519752831619L;
@NotBlank(message = "id不能为空",groups = VaccinationListFormDTO.VaccinationListForm.class)
private String id;
}

27
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcVaccineFormDTO.java

@ -0,0 +1,27 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Description 疫苗接种情况-列表点击查询详情
* @Author sun
*/
@Data
public class IcVaccineFormDTO extends PageFormDTO {
private static final long serialVersionUID = -6809065476616323072L;
public interface Detail extends CustomerClientShowGroup {
}
/**
* 核酸记录Id
*/
@NotBlank(message = "疫苗接种记录Id不能为空", groups = {Detail.class})
private String vaccineId;
}

1
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/VaccinationListResultDTO.java

@ -99,6 +99,7 @@ public class VaccinationListResultDTO implements Serializable {
* 小区名+楼栋名+单元名+房屋名
*/
private String allName;
private String id;
public VaccinationListResultDTO() {
this.vaccinationCount = NumConstant.ZERO;

13
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcEpidemicSpecialAttentionController.java

@ -17,6 +17,7 @@ import com.epmet.constants.ImportTaskConstants;
import com.epmet.dto.IcEpidemicSpecialAttentionDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.dto.result.VaccinationListResultDTO;
import com.epmet.excel.NatExportExcel;
import com.epmet.excel.NatImportExcel;
import com.epmet.excel.VaccinationExportExcel;
@ -67,6 +68,18 @@ public class IcEpidemicSpecialAttentionController {
return new Result<PageData>().ok(icEpidemicSpecialAttentionService.vaccinationList(formDTO));
}
/**
* Desc: 疫苗接种关注名单疫苗接种关注名单详情
* @param formDTO
* @author zxc
* @date 2022/4/27 15:47
*/
@PostMapping("detail")
public Result<VaccinationListResultDTO> detail(@RequestBody AttentionDetailFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,VaccinationListFormDTO.VaccinationListForm.class);
return new Result<VaccinationListResultDTO>().ok(icEpidemicSpecialAttentionService.detail(formDTO));
}
/**
* Desc:疫苗接种关注名单核酸检测关注名单新增
* @param formDTO

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

@ -78,10 +78,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.*;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Path;
@ -451,13 +448,23 @@ public class IcResiUserController implements ResultDataResolver {
@NoRepeatSubmit
@RequestMapping(value = "/exportExcelCustom")
public void exportExcelCustom(@LoginUser TokenDto tokenDto, @RequestBody ExportResiUserFormDTO pageFormDTO, HttpServletResponse response) throws Exception {
//获取导出配置
String aDefault = tokenDto.getCustomerId().concat(StrConstant.UNDER_LINE).concat("default");
if (pageFormDTO.getTemplateId().equals(aDefault)){
log.info("通过原来的模板下载,tokenDto:{}", JSON.toJSONString(tokenDto));
this.exportExcelByEasyExcel(tokenDto,pageFormDTO.getSearchForm(),response);
}else{
icResiUserExportService.exportIcResiUser(tokenDto,pageFormDTO,response);
try {
//获取导出配置
String aDefault = tokenDto.getCustomerId().concat(StrConstant.UNDER_LINE).concat("default");
if (pageFormDTO.getTemplateId().equals(aDefault)){
log.info("通过原来的模板下载,tokenDto:{}", JSON.toJSONString(tokenDto));
this.exportExcelByEasyExcel(tokenDto,pageFormDTO.getSearchForm(),response);
}else{
icResiUserExportService.exportIcResiUser(tokenDto,pageFormDTO,response);
}
} catch (EpmetException e) {
response.reset();
response.setCharacterEncoding("UTF-8");
response.setHeader("content-type", "text/htm1; charset=UTF-8");
PrintWriter printWriter = response.getWriter();
Result<Object> result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg());
printWriter.write(JSON.toJSONString(result));
printWriter.close();
}
}
/**

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

@ -19,6 +19,8 @@ import com.epmet.commons.tools.utils.*;
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.IcVaccineDTO;
import com.epmet.dto.form.IcVaccineFormDTO;
import com.epmet.dto.form.VaccineListFormDTO;
import com.epmet.dto.result.IcVaccineListCommonExcelResultDTO;
import com.epmet.dto.result.IcVaccineListResultDTO;
@ -224,5 +226,16 @@ public class IcVaccineController implements ResultDataResolver {
}
}
/**
* @Author sun
* @Description 疫苗接种情况-列表点击查询详情
**/
@NoRepeatSubmit
@PostMapping("detail")
public Result<IcVaccineDTO> detail(@RequestBody IcVaccineFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, IcVaccineFormDTO.Detail.class);
return new Result<IcVaccineDTO>().ok(icVaccineService.detail(formDTO.getVaccineId()));
}
}

9
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcEpidemicSpecialAttentionDao.java

@ -1,6 +1,7 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.AttentionDetailFormDTO;
import com.epmet.dto.form.VaccinationListFormDTO;
import com.epmet.dto.result.VaccinationListResultDTO;
import com.epmet.entity.IcEpidemicSpecialAttentionEntity;
@ -26,6 +27,14 @@ public interface IcEpidemicSpecialAttentionDao extends BaseDao<IcEpidemicSpecial
*/
List<VaccinationListResultDTO> vaccinationList(VaccinationListFormDTO formDTO);
/**
* Desc: 关注详情
* @param formDTO
* @author zxc
* @date 2022/4/27 15:42
*/
VaccinationListResultDTO nat(AttentionDetailFormDTO formDTO);
/**
* Desc: 核酸检测关注名单
* @param formDTO

10
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcEpidemicSpecialAttentionService.java

@ -4,9 +4,11 @@ import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.IcEpidemicSpecialAttentionDTO;
import com.epmet.dto.form.AttentionDetailFormDTO;
import com.epmet.dto.form.CancelAttentionPackageFormDTO;
import com.epmet.dto.form.VaccinationAddFormDTO;
import com.epmet.dto.form.VaccinationListFormDTO;
import com.epmet.dto.result.VaccinationListResultDTO;
import com.epmet.entity.IcEpidemicSpecialAttentionEntity;
import java.io.InputStream;
@ -130,4 +132,12 @@ public interface IcEpidemicSpecialAttentionService extends BaseService<IcEpidemi
* @return
*/
List<String> getHeSuanIdCardList(String customerId,List<String> idCardSet);
/**
* Desc: 详情
* @param formDTO
* @author zxc
* @date 2022/4/27 15:33
*/
VaccinationListResultDTO detail(AttentionDetailFormDTO formDTO);
}

7
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcVaccineService.java

@ -2,6 +2,7 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.IcVaccineDTO;
import com.epmet.dto.form.VaccineListFormDTO;
import com.epmet.dto.result.IcVaccineListResultDTO;
import com.epmet.dto.result.VaccineListDTO;
@ -53,4 +54,10 @@ public interface IcVaccineService extends BaseService<IcVaccineEntity> {
* @Date 2022/3/30 10:24
*/
List<VaccineListDTO> getVaccineList(String customerId, String idCard);
/**
* @Author sun
* @Description 疫苗接种情况-列表点击查询详情
**/
IcVaccineDTO detail(String vaccineId);
}

11
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcEpidemicSpecialAttentionServiceImpl.java

@ -467,6 +467,17 @@ public class IcEpidemicSpecialAttentionServiceImpl extends BaseServiceImpl<IcEpi
return baseDao.getIdCardList(customerId,idCardSet,NumConstant.TWO);
}
/**
* Desc: 详情
* @param formDTO
* @author zxc
* @date 2022/4/27 15:33
*/
@Override
public VaccinationListResultDTO detail(AttentionDetailFormDTO formDTO) {
return baseDao.nat(formDTO);
}
/**
* Desc: 文件上传并返回url
* @param errorRows

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

@ -73,6 +73,11 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
@Autowired
private IcResiUserImportService icResiUserImportService;
/**
* key:itemId,value: key:columnName,中文
*/
private static Map<String, Cache<String, String>> remoteOptionCacheMap = new HashMap<>();
/**
* desc: 根据条件查询居民信息并根据配置模板导出
*
@ -86,7 +91,7 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
@Override
public void exportIcResiUser(TokenDto tokenDto, ExportResiUserFormDTO exportResiUserFormDTO, HttpServletResponse response) {
//校验参数
validateSearchForm(tokenDto, exportResiUserFormDTO);
this.validateSearchForm(tokenDto, exportResiUserFormDTO);
IcResiUserPageFormDTO searchForm = exportResiUserFormDTO.getSearchForm();
String templateId = exportResiUserFormDTO.getTemplateId();
@ -94,7 +99,7 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
ExcelWriter excelWriter = null;
try {
//获取用户配置的导出条件
Result<IcCustomExportResultDTO> exportConfigResult = getIcCustomExportConfig(searchForm.getCustomerId(), templateId, exportResiUserFormDTO.getExportConfig());
Result<IcCustomExportResultDTO> exportConfigResult = this.getIcCustomExportConfig(searchForm.getCustomerId(), templateId, exportResiUserFormDTO.getExportConfig());
Map<String, ExportResiUserItemDTO> itemOriginMap = getItemMap(searchForm.getCustomerId());
IcCustomExportResultDTO exportConfigData = exportConfigResult.getData();
@ -107,7 +112,6 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
List<IcCustomExportResultDTO.SqlColumn> allShowColumns = new ArrayList<>(exportConfigData.getShowSqlColumns());
//需要合并的列
List<Integer> mergeColumnIndexList = new ArrayList<>();
for (int i = 0; i < allShowColumns.size(); i++) {
@ -162,44 +166,46 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
List<IcCustomExportResultDTO.SqlColumn> showSqlColumns = exportConfigData.getShowSqlColumns();
Set<String> hiddenColumnSet = exportConfigData.getHiddenSqlColumns().stream().map(IcCustomExportResultDTO.SqlColumn::getColumnName).collect(Collectors.toSet());
result.forEach(o -> {
List<Object> singleResult = new ArrayList<>();
List<Object> singleRowData = new ArrayList<>();
Map<String, Object> originalConditionMap = new ConcurrentHashMap<>();
o.forEach((key, value) -> {
Map<String, IcCustomExportResultDTO.SqlColumn> itemMap = showSqlColumns.stream().collect(Collectors.toMap(IcCustomExportResultDTO.SqlColumn::getColumnName, item -> item));
IcCustomExportResultDTO.SqlColumn columnDTO = itemMap.get(key);
if (singleResult.size() < showSqlColumns.size()) {
IcCustomExportResultDTO.SqlColumn sqlColumn = itemMap.get(key);
String tableName = sqlColumn.getTableName();
String itemId = sqlColumn.getItemId();
String columnName = columnDTO.getColumnName();
if (hiddenColumnSet.contains(columnName)) {
return;
}
String vauleStr = value == null ? StrConstant.EPMETY_STR : value.toString();
//保留原始值 便于remote条件获取
originalConditionMap.putIfAbsent(columnName, vauleStr);
ExportResiUserItemDTO exportResiUserItemDTO = itemOriginMap.get(tableName);
FormItemResult formItemResult = exportResiUserItemDTO.getItemMap().get(columnName);
//忽略 不需要显示的列的值得设置 要不然数据会写入到excel中
if (singleRowData.size() >= showSqlColumns.size()) {
return;
}
String newValue = vauleStr;
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);
}
singleResult.add(newValue);
IcCustomExportResultDTO.SqlColumn sqlColumn = itemMap.get(key);
String tableName = sqlColumn.getTableName();
String itemId = sqlColumn.getItemId();
String columnName = columnDTO.getColumnName();
if (hiddenColumnSet.contains(columnName)) {
return;
}
String vauleStr = value == null ? StrConstant.EPMETY_STR : value.toString();
//保留原始值 便于remote条件获取
originalConditionMap.putIfAbsent(columnName, vauleStr);
ExportResiUserItemDTO exportResiUserItemDTO = itemOriginMap.get(tableName);
FormItemResult formItemResult = exportResiUserItemDTO.getItemMap().get(columnName);
String newValue = vauleStr;
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);
}
singleRowData.add(newValue);
});
resultData.add(singleResult);
resultData.add(singleRowData);
});
excelWriter.write(resultData, writeSheet);
break;
} while (mapListPage.getResult().size() == searchForm.getPageSize());
} catch (IOException e) {
log.error("exportIcResiUser exception", e);
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMessage(), "导出失败");
} finally {
if (excelWriter != null) {
excelWriter.finish();
@ -230,9 +236,9 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
param.setTempId(templateId);
param.setExportConfig(exportConfig);
Result<IcCustomExportResultDTO> exportConfigResult = operCustomizeOpenFeignClient.getExcelHeaderAndSqlColumnForExport(param);
if (!exportConfigResult.success() || exportConfigResult.getData() == null) {
log.error("获取模板失败");
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取模板失败" + exportConfigResult.getInternalMsg());
if (!exportConfigResult.success() ) {
log.error("获取模板失败,internalMsg:{},msg:{}" , exportConfigResult.getInternalMsg(), exportConfigResult.getMsg());
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取模板失败" + exportConfigResult.getInternalMsg(),"获取模板失败" + exportConfigResult.getInternalMsg());
}
IcCustomExportResultDTO data = exportConfigResult.getData();
@ -244,12 +250,6 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
return exportConfigResult;
}
/**
* key:itemId,value: key:columnName,中文
*/
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 {
Map<String, IcResiUserImportServiceImpl.ColumnWrapper> columnWrappers = new HashMap<>();
@ -289,7 +289,6 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
map.put(columnName, join);
return;
}
//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));
@ -319,13 +318,12 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
//如果是多选 则返回顿号隔开
if (e.getMultiSelect()) {
List<String> valueList = new ArrayList<>();
e.getOptions().forEach(option -> {
e.getOptions().stream().forEach(option -> {
if (valueStr.contains(option.getValue())) {
valueList.add(option.getLabel());
}
});
return Joiner.on("、").join(valueList);
}
for (OptionDTO dto : e.getOptions()) {
return valueStr.contains(dto.getValue()) ? StrConstant.YES : StrConstant.NO;

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

@ -73,7 +73,7 @@ import java.util.stream.Collectors;
/**
* @ClassName IcResiUserImportServiceImpl
* @Description TODO
* @Description 居民信息导入 服务实现类
* @Author wangxianzhang
* @Date 2021/11/4 8:53 下午
* @Version 1.0
@ -1289,27 +1289,12 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
if (options == null) {
return null;
}
//结果平铺展开
Map<String, OptionResultDTO> resultMap = new HashMap<>();
options.forEach(option-> getChildren(option,resultMap));
options.forEach(option-> option.getCurrenNodeAllChild(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

18
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcVaccineServiceImpl.java

@ -13,14 +13,13 @@ import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.utils.DateUtils;
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.IcVaccineDao;
import com.epmet.dao.IcVaccineRelationDao;
import com.epmet.dto.IcVaccineDTO;
import com.epmet.dto.UserAdviceDTO;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.form.VaccineListFormDTO;
import com.epmet.dto.result.IcVaccineListResultDTO;
@ -30,6 +29,7 @@ import com.epmet.dto.result.VaccineListDTO;
import com.epmet.entity.IcResiUserEntity;
import com.epmet.entity.IcVaccineEntity;
import com.epmet.entity.IcVaccineRelationEntity;
import com.epmet.entity.UserAdviceEntity;
import com.epmet.excel.data.IcNatImportExcelData;
import com.epmet.excel.data.IcVaccineImportExcelData;
import com.epmet.excel.handler.IcVaccineExcelImportListener;
@ -468,4 +468,14 @@ public class IcVaccineServiceImpl extends BaseServiceImpl<IcVaccineDao, IcVaccin
}).collect(Collectors.toList());
}
/**
* @Author sun
* @Description 疫苗接种情况-列表点击查询详情
**/
@Override
public IcVaccineDTO detail(String vaccineId) {
IcVaccineEntity entity = baseDao.selectById(vaccineId);
return ConvertUtils.sourceToTarget(entity, IcVaccineDTO.class);
}
}

16
epmet-user/epmet-user-server/src/main/resources/mapper/IcEpidemicSpecialAttentionDao.xml

@ -20,7 +20,7 @@
<!-- 疫苗接种关注名单 -->
<select id="vaccinationList" resultType="com.epmet.dto.result.VaccinationListResultDTO">
SELECT
SELECT a.id,
a.`NAME`,
a.MOBILE,
a.ID_CARD,
@ -67,7 +67,7 @@
<!-- 核酸检测关注名单 -->
<select id="natList" resultType="com.epmet.dto.result.VaccinationListResultDTO">
SELECT
SELECT a.id,
a.`NAME`,
a.MOBILE,
a.ID_CARD,
@ -144,4 +144,16 @@
</foreach>
)
</select>
<!-- 关注详情 -->
<select id="nat" resultType="com.epmet.dto.result.VaccinationListResultDTO">
SELECT
a.`NAME`,
a.MOBILE,
a.ID_CARD,
a.REMARK,
a.REASON
FROM ic_epidemic_special_attention a
WHERE a.ID = #{id}
</select>
</mapper>

Loading…
Cancel
Save