Browse Source

Merge branches 'dev_resi_export' and 'develop' of http://git.elinkit.com.cn:7070/r/epmet-cloud into develop

dev
jianjun 3 years ago
parent
commit
7d70bdb39b
  1. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java
  2. 1
      epmet-gateway/pom.xml
  3. 10
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcExportTemplateDTO.java
  4. 17
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportItemListFormDTO.java
  5. 10
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateQueryFormDTO.java
  6. 3
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcCustomExportResultDTO.java
  7. 9
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcExportTemplateForExportResultDTO.java
  8. 7
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java
  9. 5
      epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java
  10. 6
      epmet-module/oper-customize/oper-customize-server/pom.xml
  11. 9
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcExportTemplateController.java
  12. 4
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcExportTemplateDao.java
  13. 10
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateEntity.java
  14. 14
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateConfigService.java
  15. 5
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateService.java
  16. 20
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateConfigServiceImpl.java
  17. 100
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateServiceImpl.java
  18. 23
      epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java
  19. 24
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcExportTemplateDao.xml
  20. 17
      epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml
  21. 10
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java
  22. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  23. 1
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcTripReportRecordController.java
  24. 19
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserImportService.java
  25. 230
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserExportServiceImpl.java
  26. 26
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java
  27. 7
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java

1
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/DictTypeEnum.java

@ -22,6 +22,7 @@ public enum DictTypeEnum {
AGE_GROUP("age_group", "年龄范围", 11),
PATROL_WORK_TYPE("patrol_work_type", "例行工作分类", 13),
GRID_TYPE("grid_type", "网格类型", 12),
ITEM_TYPE_QUERY("item_type_query","居民信息组件查询方式",14),
;
private final String code;

1
epmet-gateway/pom.xml

@ -289,6 +289,7 @@
<gateway.routes.epmet-demo-server.uri>lb://epmet-demo-server</gateway.routes.epmet-demo-server.uri>
<!-- 10、运营端客户定制化服务 -->
<gateway.routes.oper-customize-server.uri>lb://oper-customize-server</gateway.routes.oper-customize-server.uri>
<!-- <gateway.routes.oper-customize-server.uri>http://localhost:8089</gateway.routes.oper-customize-server.uri>-->
<!-- 11、运营端客户定制化服务 -->
<gateway.routes.oper-crm-server.uri>lb://oper-crm-server</gateway.routes.oper-crm-server.uri>
<!--<gateway.routes.oper-crm-server.uri>http://localhost:8090</gateway.routes.oper-crm-server.uri>-->

10
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/IcExportTemplateDTO.java

@ -26,6 +26,16 @@ public class IcExportTemplateDTO implements Serializable {
*/
private String customerId;
/**
* 所属机关IDcustomer_agency.id
*/
private String agencyId;
/**
* 所有上级组织机构ID(以英文:隔开)包含本身id
*/
private String pids;
/**
* 表单CODE从字典获取
*/

17
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportItemListFormDTO.java

@ -21,7 +21,7 @@ public class IcExportItemListFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
@NotEmpty(message = "请至少添加一个导出项")
private List<IcExportItemListFormDTO> subItemList;
private List<IcExportItemListFormDTO> children;
/**
* 父id
@ -50,5 +50,20 @@ public class IcExportItemListFormDTO implements Serializable {
*/
private Integer sort;
/**
* 表名
*/
private String tableName;
/**
* 列名
*/
private String columnName;
/**
* 只有远程获取的才有值
*/
private String optionSourceValue;
}

10
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/IcExportTemplateQueryFormDTO.java

@ -29,14 +29,4 @@ public class IcExportTemplateQueryFormDTO implements Serializable {
@NotBlank(message = "客户Id不能为空",groups = ExportGroup.class)
private String customerId;
/**
* 表单CODE从字典获取
*/
private String formCode;
/**
* 模板名称
*/
private String name;
}

3
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcCustomExportResultDTO.java

@ -40,8 +40,11 @@ public class IcCustomExportResultDTO implements Serializable {
@AllArgsConstructor
@Data
public static class SqlColumn {
private String itemId;
private String tableName;
private String columnName;
private String optionSourceType;
private String optionSourceValue;
}
}

9
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/IcExportTemplateForExportResultDTO.java

@ -21,10 +21,6 @@ public class IcExportTemplateForExportResultDTO implements Serializable {
*/
private String id;
/**
* 模板主键id
*/
private String tempId;
/**
* 父id
@ -59,9 +55,8 @@ public class IcExportTemplateForExportResultDTO implements Serializable {
* 列名
*/
private String columnName;
/**
* 只有远程获取的才有值
*/
private String optionSourceValue;
private String optionSourceType;
}

7
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java

@ -169,4 +169,11 @@ public interface OperCustomizeOpenFeignClient {
*/
@PostMapping("/oper/customize/icExportTemplate/getExcelHeaderAndSqlColumnForExport")
Result<IcCustomExportResultDTO> getExcelHeaderAndSqlColumnForExport(@RequestBody IcExportTemplateQueryFormDTO param);
/**
* @author sun
* @Description 居民信息自定义模板导出--保存模板
*/
@PostMapping("/oper/customize/icExportTemplate/save")
Result<List<IcExportTemplateForExportResultDTO>> save(@RequestBody IcExportTemplateSaveFormDTO formDTO);
}

5
epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java

@ -129,4 +129,9 @@ public class OperCustomizeOpenFeignClientFallback implements OperCustomizeOpenFe
public Result<IcCustomExportResultDTO> getExcelHeaderAndSqlColumnForExport(IcExportTemplateQueryFormDTO param) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "getExcelHeaderAndSqlColumnForExport", param);
}
@Override
public Result<List<IcExportTemplateForExportResultDTO>> save(IcExportTemplateSaveFormDTO formDTO) {
return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "save", formDTO);
}
}

6
epmet-module/oper-customize/oper-customize-server/pom.xml

@ -89,6 +89,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-admin-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

9
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcExportTemplateController.java

@ -11,10 +11,12 @@ import com.epmet.dto.IcExportTemplateDTO;
import com.epmet.dto.form.IcExportTemplateQueryFormDTO;
import com.epmet.dto.form.IcExportTemplateSaveFormDTO;
import com.epmet.dto.result.IcCustomExportResultDTO;
import com.epmet.dto.result.IcExportTemplateForExportResultDTO;
import com.epmet.service.IcExportTemplateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@ -45,11 +47,10 @@ public class IcExportTemplateController {
@NoRepeatSubmit
@PostMapping("save")
public Result save(@RequestBody IcExportTemplateSaveFormDTO dto) {
public Result<List<IcExportTemplateForExportResultDTO>> save(@RequestBody IcExportTemplateSaveFormDTO formDTO) {
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class);
icExportTemplateService.save(dto);
return new Result();
ValidatorUtils.validateEntity(formDTO, AddGroup.class);
return new Result<List<IcExportTemplateForExportResultDTO>>().ok(icExportTemplateService.save(formDTO));
}

4
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcExportTemplateDao.java

@ -1,10 +1,12 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.IcExportTemplateDTO;
import com.epmet.dto.form.IcExportTemplateQueryFormDTO;
import com.epmet.dto.result.IcExportTemplateForExportResultDTO;
import com.epmet.entity.IcExportTemplateEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -18,4 +20,6 @@ import java.util.List;
public interface IcExportTemplateDao extends BaseDao<IcExportTemplateEntity> {
List<IcExportTemplateForExportResultDTO> getTemplateConfigForExport(IcExportTemplateQueryFormDTO param);
List<IcExportTemplateDTO> selectByAgencyId(@Param("agencyId") String agencyId);
}

10
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/IcExportTemplateEntity.java

@ -23,6 +23,16 @@ public class IcExportTemplateEntity extends BaseEpmetEntity {
*/
private String customerId;
/**
* 所属机关IDcustomer_agency.id
*/
private String agencyId;
/**
* 所有上级组织机构ID(以英文:隔开)包含本身id
*/
private String pids;
/**
* 表单CODE从字典获取
*/

14
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateConfigService.java

@ -0,0 +1,14 @@
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.entity.IcExportTemplateConfigEntity;
/**
* 自定义表单导出模板
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-04-21
*/
public interface IcExportTemplateConfigService extends BaseService<IcExportTemplateConfigEntity> {
}

5
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcExportTemplateService.java

@ -6,6 +6,7 @@ import com.epmet.dto.IcExportTemplateDTO;
import com.epmet.dto.form.IcExportTemplateQueryFormDTO;
import com.epmet.dto.form.IcExportTemplateSaveFormDTO;
import com.epmet.dto.result.IcCustomExportResultDTO;
import com.epmet.dto.result.IcExportTemplateForExportResultDTO;
import com.epmet.entity.IcExportTemplateEntity;
import java.util.List;
@ -52,12 +53,12 @@ public interface IcExportTemplateService extends BaseService<IcExportTemplateEnt
/**
* 默认保存
*
* @param dto
* @param formDTO
* @return void
* @author generator
* @date 2022-04-21
*/
void save(IcExportTemplateSaveFormDTO dto);
List<IcExportTemplateForExportResultDTO> save(IcExportTemplateSaveFormDTO formDTO);
/**
* 批量删除

20
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcExportTemplateConfigServiceImpl.java

@ -0,0 +1,20 @@
package com.epmet.service.impl;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.dao.IcExportTemplateConfigDao;
import com.epmet.entity.IcExportTemplateConfigEntity;
import com.epmet.service.IcExportTemplateConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* 自定义表单导出模板
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2022-04-21
*/
@Slf4j
@Service
public class IcExportTemplateConfigServiceImpl extends BaseServiceImpl<IcExportTemplateConfigDao, IcExportTemplateConfigEntity> implements IcExportTemplateConfigService {
}

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

@ -3,20 +3,31 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
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.EpmetException;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.EpmetRequestHolder;
import com.epmet.dao.IcExportTemplateDao;
import com.epmet.dao.IcFormItemDao;
import com.epmet.dto.IcExportTemplateDTO;
import com.epmet.dto.form.IcExportItemListFormDTO;
import com.epmet.dto.form.IcExportTemplateQueryFormDTO;
import com.epmet.dto.form.IcExportTemplateSaveFormDTO;
import com.epmet.dto.result.ConditionResultDTO;
import com.epmet.dto.result.IcCustomExportResultDTO;
import com.epmet.dto.result.IcExportTemplateForExportResultDTO;
import com.epmet.entity.IcExportTemplateConfigEntity;
import com.epmet.entity.IcExportTemplateEntity;
import com.epmet.service.IcExportTemplateConfigService;
import com.epmet.service.IcExportTemplateService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@ -42,6 +53,8 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
private IcExportTemplateDao icExportTemplateDao;
@Autowired
private IcFormItemDao icFormItemDao;
@Autowired
private IcExportTemplateConfigService icExportTemplateConfigService;
@Override
public PageData<IcExportTemplateDTO> page(Map<String, Object> params) {
@ -76,9 +89,83 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
@Override
@Transactional(rollbackFor = Exception.class)
public void save(IcExportTemplateSaveFormDTO dto) {
//TODO
public List<IcExportTemplateForExportResultDTO> save(IcExportTemplateSaveFormDTO formDTO) {
List<IcExportTemplateForExportResultDTO> resultList = new ArrayList<>();
IcExportTemplateEntity tempEntity = new IcExportTemplateEntity();
List<IcExportTemplateConfigEntity> itemList = new ArrayList<>();
String customerId = EpmetRequestHolder.getHeader(AppClientConstant.CUSTOMER_ID);
String staffId = EpmetRequestHolder.getHeader(AppClientConstant.USER_ID);
//1.获取工作人员所属组织缓存信息
CustomerStaffInfoCacheResult staffInfo = CustomerStaffRedis.getStaffInfo(customerId, staffId);
if (null == staffInfo) {
throw new EpmetException(String.format("查询工作人员%s缓存信息失败...", EpmetRequestHolder.getHeader(AppClientConstant.USER_ID)));
}
AgencyInfoCache agencyInfo = CustomerOrgRedis.getAgencyInfo(staffInfo.getAgencyId());
if (null == agencyInfo) {
throw new RenException(String.format("获取组织缓存信息失败%s", staffInfo.getAgencyId()));
}
//2.根据是否保存判断查询当前组织已存在模板的最大sort值
int sort = 1;
String tempId = "";
if (formDTO.getIsTemp()) {
List<IcExportTemplateDTO> templist = baseDao.selectByAgencyId(agencyInfo.getId());
if (!CollectionUtils.isEmpty(templist)) {
sort = templist.get(NumConstant.ZERO).getSort() + NumConstant.ONE;
}
tempId = UUID.randomUUID().toString().replace("-", "");
tempEntity.setId(tempId);
tempEntity.setCustomerId(customerId);
tempEntity.setAgencyId(agencyInfo.getId());
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);
}
//3.组装待保存和待返回数据对象
int num = 0;
for (IcExportItemListFormDTO dto : formDTO.getItemList()) {
IcExportTemplateConfigEntity itemEntity = ConvertUtils.sourceToTarget(dto, IcExportTemplateConfigEntity.class);
itemEntity.setId(UUID.randomUUID().toString().replace("-", ""));
itemEntity.setPid("0");
itemEntity.setCustomerId(customerId);
itemEntity.setTempId(tempId);
num += 1;
itemEntity.setSort(num);
itemList.add(itemEntity);
IcExportTemplateForExportResultDTO resultDTO = ConvertUtils.sourceToTarget(dto, IcExportTemplateForExportResultDTO.class);
resultDTO.setId(itemEntity.getId());
resultDTO.setPid(itemEntity.getPid());
resultDTO.setSort(itemEntity.getSort());
resultList.add(resultDTO);
int subNum = 0;
for (IcExportItemListFormDTO subDTO : dto.getChildren()) {
IcExportTemplateConfigEntity subItem = ConvertUtils.sourceToTarget(subDTO, IcExportTemplateConfigEntity.class);
subItem.setId(UUID.randomUUID().toString().replace("-", ""));
subItem.setPid(itemEntity.getId());
subItem.setCustomerId(customerId);
subItem.setTempId(tempId);
subNum += 1;
subItem.setSort(subNum);
itemList.add(subItem);
IcExportTemplateForExportResultDTO subResultDTO = ConvertUtils.sourceToTarget(subDTO, IcExportTemplateForExportResultDTO.class);
subResultDTO.setId(subItem.getId());
subResultDTO.setPid(subItem.getPid());
subResultDTO.setSort(subItem.getSort());
resultList.add(subResultDTO);
}
}
//4.执行数据保存
if (formDTO.getIsTemp()) {
baseDao.insert(tempEntity);
icExportTemplateConfigService.insertBatch(itemList);
}
//5.返回组装数据对象
return resultList;
}
@ -117,7 +204,7 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
log.error("getTemplateConfigForExport item 不存在 id:{}", itemId);
return;
}
hiddenSqlColumns.add(new IcCustomExportResultDTO.SqlColumn(item.getTableName(), item.getColumnName()));
hiddenSqlColumns.add(new IcCustomExportResultDTO.SqlColumn(item.getItemId(),item.getTableName(), item.getColumnName(),item.getOptionSourceType(),item.getOptionSourceValue()));
});
}
@ -129,12 +216,9 @@ public class IcExportTemplateServiceImpl extends BaseServiceImpl<IcExportTemplat
}
private void digui(Map<String, List<IcExportTemplateForExportResultDTO>> resultTemp, IcExportTemplateForExportResultDTO root, List<List<String>> headerList, List<IcCustomExportResultDTO.SqlColumn> showSqlColumns, List<IcCustomExportResultDTO.SqlColumn> hiddenSqlColumns, Set<String> hasExistColumnSet) {
if (StringUtils.isNotBlank(root.getColumnName())) {
showSqlColumns.add(new IcCustomExportResultDTO.SqlColumn(root.getTableName(), root.getColumnName()));
if (StringUtils.isNotBlank(root.getOptionSourceValue())) {
showSqlColumns.add(new IcCustomExportResultDTO.SqlColumn(root.getItemId(),root.getTableName(), root.getColumnName(),root.getOptionSourceType(),root.getOptionSourceValue()));
if (StringUtils.isNotBlank(root.getOptionSourceValue())&&root.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)) {
String[] paramArr = root.getOptionSourceValue().split(StrConstant.QUESTION_MARK_TRANSFER)[NumConstant.ONE].split(StrConstant.AND_MARK);
//先remote中再添加 然后移除item中有的
hasExistColumnSet.addAll(Arrays.asList(paramArr));

23
epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormItemServiceImpl.java

@ -22,6 +22,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.enums.DictTypeEnum;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.IcFormItemDao;
import com.epmet.dao.IcFormItemOptionsDao;
import com.epmet.dao.IcFormQueryBuilderDao;
@ -31,8 +33,10 @@ import com.epmet.dto.result.*;
import com.epmet.entity.IcFormItemEntity;
import com.epmet.entity.IcFormItemOptionsEntity;
import com.epmet.entity.IcFormQueryBuilderEntity;
import com.epmet.feign.EpmetAdminOpenFeignClient;
import com.epmet.service.IcFormItemService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -40,6 +44,7 @@ import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
@ -56,6 +61,9 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
private IcFormItemOptionsDao icFormItemOptionsDao;
@Autowired
private IcFormQueryBuilderDao icFormQueryBuilderDao;
@Autowired
private EpmetAdminOpenFeignClient adminOpenFeignClient;
/**
* 获取居民信息的查询条件组件列表
*
@ -250,9 +258,9 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
builderEntity.setUpdatedBy("init");
//item默认的查询组件已经有了,就不插入了
IcFormQueryBuilderEntity entity = icFormQueryBuilderDao.selectDefaultQueryItem(item.getId(), item.getItemType(), builderEntity.getQueryType());
if (null == entity) {
/*if (null == entity) {
icFormQueryBuilderDao.insert(builderEntity);
}
}*/
}
}
@ -263,8 +271,7 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
private String queryType(String itemType) {
String queryType;
switch (itemType) {
/*switch (itemType) {
case "select":
queryType = "equal";
break;
@ -280,7 +287,7 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
case "radio":
queryType = "equal";
break;
//多选的,查询时应该是 and (columnname='' or columnname='')
//多选的,查询时应该是 and (columnname like '%XXX%' or columnname like '%XXX%')
case "checkbox":
queryType = "list_equal";
break;
@ -292,7 +299,13 @@ public class IcFormItemServiceImpl extends BaseServiceImpl<IcFormItemDao, IcForm
break;
default:
queryType = "like";
}*/
String queryType = "like";
Result<Map<String, String>> queryTypeMap = adminOpenFeignClient.dictMap(DictTypeEnum.ITEM_TYPE_QUERY.getCode());
if (queryTypeMap.success() && MapUtils.isNotEmpty(queryTypeMap.getData())) {
queryType = queryTypeMap.getData().get(itemType);
}
log.warn("itemType="+itemType+";queryType="+queryType);
return queryType;
}

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

@ -21,14 +21,32 @@
<select id="getTemplateConfigForExport" resultType="com.epmet.dto.result.IcExportTemplateForExportResultDTO">
SELECT
c.ID,c.TEMP_ID,c.LABEL,c.PID,c.sort,ifi.ID AS itemId,ifig.TABLE_NAME,concat(ifi.COLUMN_NAME,if(ifi.COLUMN_NUM = 0,'',ifi.COLUMN_NUM)) columnName,
ifi2.OPTION_SOURCE_VALUE
ifi.OPTION_SOURCE_VALUE,ifi.OPTION_SOURCE_TYPE
FROM ic_export_template_config c
LEFT JOIN ic_form_item ifi ON c.FORM_ITEM_ID = ifi.ID
LEFT JOIN ic_form_item ifi2 ON c.FORM_ITEM_ID = ifi2.ID AND ifi2.OPTION_SOURCE_TYPE ='remote' AND ifi2.OPTION_SOURCE_VALUE LIKE '%?%'
LEFT JOIN ic_form_item ifi ON c.ITEM_ID = ifi.ID
LEFT JOIN ic_form_item_group ifig ON ifi.ITEM_GROUP_ID = ifig.ID
WHERE TEMP_ID = #{tempId} and c.CUSTOMER_ID = #{customerId} and c.DEL_FLAG = '0'
ORDER BY c.PID,c.SORT
</select>
<select id="selectByAgencyId" resultType="com.epmet.dto.IcExportTemplateDTO">
SELECT
id,
customer_id,
agency_id,
pids,
form_code,
`name`,
type,
url,
sort
FROM
ic_export_template
WHERE
del_flag = '0'
AND agency_id = #{agencyId}
ORDER BY sort DESC
</select>
</mapper>

17
epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormItemDao.xml

@ -243,7 +243,9 @@
SELECT
ifi.ID AS itemId,
ifig.TABLE_NAME,
CONCAT(ifi.COLUMN_NAME, if(ifi.COLUMN_NUM = 0, '', ifi.COLUMN_NUM)) columnName
CONCAT(ifi.COLUMN_NAME, if(ifi.COLUMN_NUM = 0, '', ifi.COLUMN_NUM)) columnName,
ifi.OPTION_SOURCE_TYPE,
ifi.OPTION_SOURCE_VALUE
FROM
ic_form_item ifi
LEFT JOIN ic_form_item_group ifig ON ifi.ITEM_GROUP_ID = ifig.ID
@ -258,9 +260,16 @@
ifi.CUSTOMER_ID,
ifi.ITEM_GROUP_ID,
ifi.LABEL,
ifi.SORT
FROM ic_form_item ifi WHERE ITEM_GROUP_ID = #{groupId} and ifi.CUSTOMER_ID = #{customerId}
AND LENGTH(ifi.COLUMN_NAME)>0
ifi.SORT,
ifi.OPTION_SOURCE_VALUE,
ifig.TABLE_NAME,
CONCAT(ifi.COLUMN_NAME, if(ifi.COLUMN_NUM = 0, '', ifi.COLUMN_NUM)) columnName
FROM
ic_form_item ifi
LEFT JOIN ic_form_item_group ifig ON ifi.ITEM_GROUP_ID = ifig.ID
WHERE
ITEM_GROUP_ID = #{groupId} and ifi.CUSTOMER_ID = #{customerId}
AND LENGTH(ifi.COLUMN_NAME)>0
</select>
</mapper>

10
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/IcResiUserPageFormDTO.java

@ -18,10 +18,10 @@ public class IcResiUserPageFormDTO extends PageFormDTO implements Serializable {
public interface AddUserInternalGroup {
}
@NotBlank(message = "formCode不能为空", groups = AddUserInternalGroup.class)
@NotBlank(message = "formCode不能为空", groups = {AddUserInternalGroup.class,ExportGroup.class})
private String formCode;
@NotBlank(message = "customerId不能为空", groups = AddUserInternalGroup.class)
@NotBlank(message = "customerId不能为空", groups = {AddUserInternalGroup.class,ExportGroup.class})
private String customerId;
/**
@ -29,7 +29,7 @@ public class IcResiUserPageFormDTO extends PageFormDTO implements Serializable {
*/
private List<ResiUserQueryValueDTO> conditions;
@NotBlank(message = "当前用户id不能为空", groups = AddUserInternalGroup.class)
@NotBlank(message = "当前用户id不能为空", groups = {AddUserInternalGroup.class,ExportGroup.class})
private String staffId;
/**
@ -37,7 +37,9 @@ public class IcResiUserPageFormDTO extends PageFormDTO implements Serializable {
*/
private String keyword;
@NotBlank(message = "模板id不能为空", groups = ExportGroup.class)
/**
* 模板id
*/
private String templateId;
}

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

@ -416,9 +416,12 @@ public class IcResiUserController implements ResultDataResolver {
@NoRepeatSubmit
@RequestMapping(value = "/exportExcelCustom")
public void exportExcelCustom(/*@LoginUser*/ TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception {
//tokenDto.setUserId("9e37adcce6472152e6508a19d3683e02");
//tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc");
ValidatorUtils.validateEntity(pageFormDTO, ExportGroup.class);
//TODO 去掉
tokenDto.setUserId("73ae6280e46a6653a5605d51d5462725");
tokenDto.setCustomerId("45687aa479955f9d06204d415238f7cc");
pageFormDTO.setCustomerId(tokenDto.getCustomerId());
pageFormDTO.setStaffId(tokenDto.getUserId());
ValidatorUtils.validateEntity(pageFormDTO, IcResiUserPageFormDTO.AddUserInternalGroup.class,ExportGroup.class);
pageFormDTO.setIsPage(false);
//获取导出配置
icResiUserExportService.exportIcResiUser(pageFormDTO,response);

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

@ -93,6 +93,7 @@ public class IcTripReportRecordController implements ResultDataResolver {
PageTripReportFormDTO pageTripReportFormDTO=new PageTripReportFormDTO();
pageTripReportFormDTO.setCustomerId(tokenDto.getCustomerId());
pageTripReportFormDTO.setUserId(tokenDto.getUserId());
pageTripReportFormDTO.setId(formDTO.getId());
return new Result<IcTripReportRecordDTO>().ok(icTripReportRecordService.detail(pageTripReportFormDTO));
}

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

@ -1,10 +1,12 @@
package com.epmet.service;
import com.epmet.dto.result.FormItemResult;
import com.epmet.service.impl.IcResiUserImportServiceImpl;
import javax.servlet.http.HttpServletResponse;
import java.nio.file.Path;
import java.util.List;
import java.util.Map;
/**
*@Description 居民信息导入service
@ -33,5 +35,20 @@ public interface IcResiUserImportService {
*/
void finishImportTask(String importTaskId, String operatorId, String processStatus, String resultDesc, String resultDescPath);
Object testAsync();
/**
* 分割sourceUrl为纯url和父itemId
* @param fullUri
* @return [ pureUri, cascadeItemId(父itemId) ]
*/
String[] splitOptionSourceUrl(String fullUri);
/**
* desc:获取远程 选项
* @param pureUri
* @param cascadeItemId
* @param columnWrappers
* @param currUserAgencyId
* @param purpose
* @return
*/
Map<String, String> listRemoteOptions(String pureUri, String cascadeItemId, Map<String, IcResiUserImportServiceImpl.ColumnWrapper> columnWrappers, String currUserAgencyId, String purpose);
}

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

@ -3,33 +3,46 @@ package com.epmet.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.constant.Constant;
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.enums.FormItemTypeEnum;
import com.epmet.commons.tools.enums.IcFormCodeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.security.user.LoginUserUtil;
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.constant.IcResiUserConstant;
import com.epmet.dto.form.IcExportTemplateQueryFormDTO;
import com.epmet.dto.form.IcResiUserPageFormDTO;
import com.epmet.dto.result.FormItemResult;
import com.epmet.dto.result.IcCustomExportResultDTO;
import com.epmet.dto.result.OptionDTO;
import com.epmet.excel.support.ExportResiUserItemDTO;
import com.epmet.feign.OperCustomizeOpenFeignClient;
import com.epmet.service.IcResiUserExportService;
import com.epmet.service.IcResiUserImportService;
import com.epmet.service.IcResiUserService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
/**
* desc:
@ -44,9 +57,9 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
@Autowired
private OperCustomizeOpenFeignClient operCustomizeOpenFeignClient;
@Autowired
private LoginUserUtil loginUserUtil;
@Autowired
private IcResiUserService icResiUserService;
@Autowired
private IcResiUserImportService icResiUserImportService;
/**
* desc: 根据条件查询居民信息并根据配置模板导出
@ -61,22 +74,20 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
public void exportIcResiUser(IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) {
ExcelWriter excelWriter = null;
try {
//获取模板条件
IcExportTemplateQueryFormDTO param = new IcExportTemplateQueryFormDTO();
param.setCustomerId(loginUserUtil.getLoginUserCustomerId());
param.setCustomerId("default");
param.setTempId(pageFormDTO.getTemplateId());
Result<IcCustomExportResultDTO> exportConfigResult = operCustomizeOpenFeignClient.getExcelHeaderAndSqlColumnForExport(param);
if (!exportConfigResult.success() || exportConfigResult.getData() == null) {
log.error("获取模板失败");
return;
}
IcCustomExportResultDTO resultDTO = exportConfigResult.getData();
//获取用户配置的导出条件
Result<IcCustomExportResultDTO> exportConfigResult = getIcCustomExportConfig(pageFormDTO);
Map<String, ExportResiUserItemDTO> itemOriginMap = getItemMap(pageFormDTO.getCustomerId());
IcCustomExportResultDTO exportConfigData = exportConfigResult.getData();
log.info("查询到的模板配置信息:{}", JSON.toJSONString(exportConfigData));
FreezeAndFilter writeHandler = new FreezeAndFilter();
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel("居民基本信息.xlsx", response)).registerWriteHandler(writeHandler).build();
WriteSheet writeSheet = EasyExcel.writerSheet().head(resultDTO.getHeaders()).build();
WriteSheet writeSheet = EasyExcel.writerSheet().head(exportConfigData.getHeaders()).build();
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(loginUserUtil.getLoginUserCustomerId(), loginUserUtil.getLoginUserId());
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(pageFormDTO.getCustomerId(), pageFormDTO.getStaffId());
if (staffInfoCacheResult == null){
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"获取工作人员信息失败");
}
String staffOrgPath = null;
if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) {
staffOrgPath = staffInfoCacheResult.getAgencyPIds().concat(StrConstant.COLON).concat(staffInfoCacheResult.getAgencyId());
@ -84,34 +95,60 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
staffOrgPath = staffInfoCacheResult.getAgencyId();
}
Page<Map<String, Object>> mapListPage = null;
List<IcCustomExportResultDTO.SqlColumn> allShowColumns = new ArrayList<>(resultDTO.getShowSqlColumns());
allShowColumns.addAll(resultDTO.getHiddenSqlColumns());
List<IcCustomExportResultDTO.SqlColumn> allShowColumns = new ArrayList<>(exportConfigData.getShowSqlColumns());
allShowColumns.addAll(exportConfigData.getHiddenSqlColumns());
do {
String finalStaffOrgPath = staffOrgPath;
mapListPage = PageHelper.startPage(pageFormDTO.getPageNo(), pageFormDTO.getPageSize(), pageFormDTO.getIsPage()).doSelectPage(() -> {
icResiUserService.dynamicQuery(loginUserUtil.getLoginUserCustomerId(), pageFormDTO.getFormCode(), IcResiUserConstant.IC_RESI_USER, allShowColumns, pageFormDTO.getConditions(), staffInfoCacheResult.getAgencyId(), finalStaffOrgPath);
icResiUserService.dynamicQuery(pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), IcResiUserConstant.IC_RESI_USER, allShowColumns, pageFormDTO.getConditions(), staffInfoCacheResult.getAgencyId(), finalStaffOrgPath);
});
pageFormDTO.setPageNo(pageFormDTO.getPageNo() + NumConstant.ONE);
//todo
if (pageFormDTO.getPageNo() == 4) {
break;
}
} while (mapListPage != null && mapListPage.getResult().size() == pageFormDTO.getPageSize());
List<Map<String, Object>> result = mapListPage.getResult();
List<List<Object>> resultData = new ArrayList<>();
result.forEach(o -> {
List<Object> singleResult = new ArrayList<>();
o.values().forEach(value -> {
if (singleResult.size() < resultDTO.getShowSqlColumns().size()) {
singleResult.add(value);
}
List<Map<String, Object>> result = mapListPage.getResult();
List<List<Object>> resultData = new ArrayList<>();
result.forEach(o -> {
List<Object> singleResult = new ArrayList<>();
Map<String,Object> originalConditionMap = new ConcurrentHashMap<>();
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));
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();
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);
if (StringUtils.isBlank(vauleStr)){
return;
}
String newValue = vauleStr;
if (Constant.OPITON_SOURCE_REMOTE.equals(sqlColumn.getOptionSourceType())) {
putRemoteValue(exportResiUserItemDTO.getRemoteItemConditionMap().get(itemId), staffInfoCacheResult.getAgencyId(), o,originalConditionMap, formItemResult, columnName, vauleStr);
} else if (Constant.OPITON_SOURCE_LOCAL.equals(sqlColumn.getOptionSourceType())){
newValue = putOptionValue(formItemResult, vauleStr);
}
singleResult.add(newValue);
}
});
resultData.add(singleResult);
});
resultData.add(singleResult);
});
log.debug("需要写入的data长度:{}", resultData.size());
excelWriter.write(resultData, writeSheet);
log.info("需要写入的data长度:{}", resultData.size());
excelWriter.write(resultData, writeSheet);
//todo
break;
} while (mapListPage.getResult().size() == pageFormDTO.getPageSize());
} catch (IOException e) {
log.error("exportIcResiUser exception", e);
} finally {
@ -119,7 +156,120 @@ public class IcResiUserExportServiceImpl implements IcResiUserExportService {
excelWriter.finish();
}
}
}
@Nullable
public Result<IcCustomExportResultDTO> getIcCustomExportConfig(IcResiUserPageFormDTO pageFormDTO) {
IcExportTemplateQueryFormDTO param = new IcExportTemplateQueryFormDTO();
param.setCustomerId(pageFormDTO.getCustomerId());
param.setTempId(pageFormDTO.getTemplateId());
Result<IcCustomExportResultDTO> exportConfigResult = operCustomizeOpenFeignClient.getExcelHeaderAndSqlColumnForExport(param);
if (!exportConfigResult.success() || exportConfigResult.getData() == null) {
log.error("获取模板失败");
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"获取模板失败");
}
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<>();
if (e.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)){
for (FormItemResult o : conditionItemSet) {
Object conditionValue = originalConditionMap.getOrDefault(columnName, map.get(columnName));
originalConditionMap.putIfAbsent(columnName,conditionValue.toString());
IcResiUserImportServiceImpl.ColumnWrapper value = new IcResiUserImportServiceImpl.ColumnWrapper();
value.setColValue(conditionValue.toString());
columnWrappers.put(o.getItemId(), value);
}
}
Cache<String, String> cache = remoteOptionCacheMap.getOrDefault(e.getItemId(), CacheBuilder.newBuilder().maximumSize(NumConstant.FIVE_HUNDRED).build());
remoteOptionCacheMap.putIfAbsent(e.getItemId(),cache);
String cacheValue = cache.getIfPresent(vauleStr);
if (StringUtils.isNotBlank(cacheValue)){
map.put(columnName,cacheValue);
} else {
String[] parts = icResiUserImportService.splitOptionSourceUrl(e.getOptionSourceValue());
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);
}
cache.put(value,label);
});
}
}
} catch (Exception ex) {
log.error("listRemoteOptions url", ex);
}
}
private String putOptionValue(FormItemResult e, String vauleStr) {
FormItemTypeEnum itemTypeEnum = FormItemTypeEnum.getEnum(e.getItemType());
switch (itemTypeEnum) {
case CHECKBOX:
for (OptionDTO dto : e.getOptions()) {
return vauleStr.contains(dto.getValue()) ? StrConstant.YES : StrConstant.NO;
}
break;
case SELECT:
case RADIO:
for (OptionDTO optionDTO : e.getOptions()) {
if (optionDTO.getValue().equals(vauleStr)) {
return optionDTO.getLabel();
}
}
break;
default:
}
return vauleStr;
}
/**
* desc:获取表单配置
* @param customerId
* @return map key:tableName ,value:ExportResiUserItemDTO
*/
private Map<String, ExportResiUserItemDTO> getItemMap(String customerId){
//获取表单项
IcResiUserService icResiUserService = SpringContextUtils.getBean(IcResiUserService.class);
if (icResiUserService == null){
log.error("获取bean IcResiUserService 失败");
return null;
}
List<FormItemResult> resiFormAllItems = icResiUserService.listFormItems(customerId, IcFormCodeEnum.RESI_BASE_INFO.getCode());
Map<String, FormItemResult> allItemMap = resiFormAllItems.stream().collect(Collectors.toMap(FormItemResult::getItemId, o -> o));
Map<String, ExportResiUserItemDTO> map = new HashMap<>();
allItemMap.values().forEach(item->{
String tableName = item.getTableName();
ExportResiUserItemDTO exportItem = map.getOrDefault(tableName, new ExportResiUserItemDTO());
map.putIfAbsent(tableName,exportItem);
String columnName = item.getColumnName().concat(item.getColumnNum() == NumConstant.ZERO ? StrConstant.EPMETY_STR : item.getColumnNum().toString());
exportItem.getItemMap().put(columnName,item);
if (Constant.OPITON_SOURCE_REMOTE.equals(item.getOptionSourceType())&&item.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)){
//多个参数
String[] paramArr = item.getOptionSourceValue().split(StrConstant.QUESTION_MARK_TRANSFER)[NumConstant.ONE].split(StrConstant.AND_MARK);
Arrays.stream(paramArr).forEach(o->{
FormItemResult value = allItemMap.get(o);
if (value == null){
return;
}
Set<FormItemResult> conditionSet = exportItem.getRemoteItemConditionMap().getOrDefault(item.getItemId(),new HashSet<>());
conditionSet.add(value);
exportItem.getRemoteItemConditionMap().putIfAbsent(item.getItemId(),conditionSet);
});
}
});
return map;
}
}

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

@ -8,8 +8,8 @@ import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.EasyExcelFactory;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.epmet.bean.ResiImportCategoryData;
import com.epmet.bean.ResiImportResiCategoryChangedCache;
import com.epmet.bean.ResiImportChangedData;
import com.epmet.bean.ResiImportResiCategoryChangedCache;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.constant.StrConstant;
@ -33,7 +33,10 @@ import com.epmet.dao.IcUserChangeDetailedDao;
import com.epmet.dao.IcUserChangeRecordDao;
import com.epmet.dao.IcUserTransferRecordDao;
import com.epmet.dto.*;
import com.epmet.dto.form.*;
import com.epmet.dto.form.GridOptionFormDTO;
import com.epmet.dto.form.HouseFormDTO;
import com.epmet.dto.form.IcResiUserOrgMsgFormDTO;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.IcResiUserEntity;
import com.epmet.entity.IcUserChangeDetailedEntity;
@ -43,14 +46,14 @@ import com.epmet.enums.IcResiUserTableEnum;
import com.epmet.excel.handler.IcResiImportDynamicExcelListener;
import com.epmet.excel.handler.IcResiVirtualSheetImportListener;
import com.epmet.feign.*;
import com.epmet.service.*;
import com.epmet.service.IcResiUserImportService;
import com.epmet.service.UserService;
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType;
@ -60,7 +63,9 @@ import org.springframework.stereotype.Service;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Path;
import java.time.LocalDate;
import java.time.Period;
@ -1151,6 +1156,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
* @param fullUri
* @return [ pureUri, cascadeItemId(父itemId) ]
*/
@Override
public String[] splitOptionSourceUrl(String fullUri) {
String pureUri = null;
String cascadeItemId = null;
@ -1170,6 +1176,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
* 远程获取options
* @return
*/
@Override
public Map<String, String> listRemoteOptions(String pureUri, String cascadeItemId, Map<String, ColumnWrapper> columnWrappers, String currUserAgencyId, String purpose) {
ColumnWrapper cascadeItemColumnWrapper = null;
@ -1971,6 +1978,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
* @param bizType
* @return
*/
@Override
public String createImportTaskRecord(String operatorId, String bizType, String originFilename) {
ImportTaskCommonFormDTO importTaskForm = new ImportTaskCommonFormDTO();
importTaskForm.setOperatorId(operatorId);
@ -1992,6 +2000,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
* @param resultDesc 结果描述非必填
* @param resultDescPath 结果描述文件excel等文件有错误的话需要传入成功则不需要
*/
@Override
public void finishImportTask(String importTaskId, String operatorId, String processStatus, String resultDesc, String resultDescPath) {
ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO();
importFinishTaskForm.setTaskId(importTaskId);
@ -2006,11 +2015,4 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res
importTaskId, processStatus, operatorId, resultDesc, resultDescPath);
}
}
@Override
public Object testAsync() {
IcNeighborHoodDTO nform = new IcNeighborHoodDTO();
govOrgOpenFeignClient.getNeighborHoodOptions(nform);
return null;
}
}

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

@ -999,13 +999,6 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
columnWrappers.put(o.getItemId(), value);
}
}
/*if (e.getItemId().equals("1078")) {
IcResiUserImportServiceImpl.ColumnWrapper value = new IcResiUserImportServiceImpl.ColumnWrapper();
value.setColValue(gridId.toString());
columnWrappers.put("1001", value);
}else if (e.getOptionSourceValue().contains(StrConstant.QUESTION_MARK)){
continue;
}*/
Cache<String, String> cache = remoteOptionCacheMap.getOrDefault(e.getItemId(), CacheBuilder.newBuilder().maximumSize(NumConstant.FIVE_HUNDRED).build());
remoteOptionCacheMap.putIfAbsent(e.getItemId(), cache);
String cacheValue = cache.getIfPresent(vauleStr);

Loading…
Cancel
Save