From c0828a645c0c52fa620d64d821436c5a60c4de52 Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 11 Nov 2021 13:11:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/result/CustomerFormResultDTO.java | 2 +- .../com/epmet/dto/result/FormGroupDTO.java | 2 +- .../{FormItem.java => FormItemResult.java} | 2 +- .../{FormItem2.java => FormItemResult2.java} | 2 +- .../feign/OperCustomizeOpenFeignClient.java | 2 +- .../OperCustomizeOpenFeignClientFallback.java | 2 +- .../epmet/controller/IcFormController.java | 6 +- .../main/java/com/epmet/dao/IcFormDao.java | 8 +- .../java/com/epmet/service/IcFormService.java | 6 +- .../epmet/service/impl/IcFormServiceImpl.java | 27 ++- .../src/main/resources/mapper/IcFormDao.xml | 8 +- .../controller/IcResiUserController.java | 177 ++++++++---------- .../com/epmet/service/IcResiUserService.java | 2 +- .../impl/IcResiUserImportServiceImpl.java | 23 ++- .../service/impl/IcResiUserServiceImpl.java | 6 +- .../test/IcResiUserControllerTest.java | 6 +- 16 files changed, 127 insertions(+), 154 deletions(-) rename epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/{FormItem.java => FormItemResult.java} (97%) rename epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/{FormItem2.java => FormItemResult2.java} (97%) diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFormResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFormResultDTO.java index e5afdeddc2..45cd1dd0ea 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFormResultDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFormResultDTO.java @@ -27,7 +27,7 @@ public class CustomerFormResultDTO implements Serializable { /** * 表单项 */ - private List itemList; + private List itemList; /** * 表单分组 diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormGroupDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormGroupDTO.java index dbb3f60e70..1b2a6c8964 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormGroupDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormGroupDTO.java @@ -42,6 +42,6 @@ public class FormGroupDTO implements Serializable { /** * 分组里面的组件 */ - private List itemList; + private List itemList; } diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItem.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItemResult.java similarity index 97% rename from epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItem.java rename to epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItemResult.java index 7e3abbaa0e..dfe0b85ffa 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItem.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItemResult.java @@ -12,7 +12,7 @@ import java.util.List; * @Date 2021/10/26 2:15 下午 */ @Data -public class FormItem implements Serializable { +public class FormItemResult implements Serializable { private static final long serialVersionUID = 7443085469505238040L; /** diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItem2.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItemResult2.java similarity index 97% rename from epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItem2.java rename to epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItemResult2.java index 99114fe830..3372b55a37 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItem2.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/FormItemResult2.java @@ -12,7 +12,7 @@ import java.util.List; * @Date 2021/10/26 4:29 下午 */ @Data -public class FormItem2 implements Serializable { +public class FormItemResult2 implements Serializable { private static final long serialVersionUID = -7571266621687396261L; /** * 父项ID diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java index ecfe051d35..9205d5bedb 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/OperCustomizeOpenFeignClient.java @@ -91,7 +91,7 @@ public interface OperCustomizeOpenFeignClient { * @date 2021.10.28 15:19:59 */ @PostMapping("/oper/customize/icform/items") - Result> listItems(@RequestBody CustomerFormQueryDTO formDto); + Result> listItems(@RequestBody CustomerFormQueryDTO formDto); /** * @Author sun diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java index b1cc198c20..7835c21b5b 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/feign/fallback/OperCustomizeOpenFeignClientFallback.java @@ -73,7 +73,7 @@ public class OperCustomizeOpenFeignClientFallback implements OperCustomizeOpenFe } @Override - public Result> listItems(CustomerFormQueryDTO formDto) { + public Result> listItems(CustomerFormQueryDTO formDto) { return ModuleUtils.feignConError(ServiceConstant.OPER_CUSTOMIZE_SERVER, "listItems", formDto); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java index 8c506cfe74..f6f52d00c2 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/IcFormController.java @@ -187,9 +187,9 @@ public class IcFormController { * @date 2021.10.28 15:19:59 */ @PostMapping("items") - public Result> listItems(@LoginUser TokenDto tokenDto, @RequestBody CustomerFormQueryDTO formDto) { + public Result> listItems(@LoginUser TokenDto tokenDto, @RequestBody CustomerFormQueryDTO formDto) { ValidatorUtils.validateEntity(formDto, CustomerFormQueryDTO.GetFormInfoGroup.class); - List rst = icFormService.listItems(tokenDto.getCustomerId(), formDto.getFormCode()); - return new Result>().ok(rst); + List rst = icFormService.listItems(tokenDto.getCustomerId(), formDto.getFormCode()); + return new Result>().ok(rst); } } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormDao.java index 6cd4fa7188..7cd489b2bb 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormDao.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/IcFormDao.java @@ -20,7 +20,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.result.CustomerFormResultDTO; import com.epmet.dto.result.FormGroupDTO; -import com.epmet.dto.result.FormItem; +import com.epmet.dto.result.FormItemResult; import com.epmet.dto.result.OptionDTO; import com.epmet.entity.IcFormEntity; import org.apache.ibatis.annotations.Mapper; @@ -47,9 +47,9 @@ public interface IcFormDao extends BaseDao { */ CustomerFormResultDTO selectByCode(@Param("customerId") String customerId, @Param("formCode") String formCode); - List selectItemList(String formId, Boolean dynamic); + List selectItemList(String formId, Boolean dynamic); - List selectItemListByGroupId(String groupId); + List selectItemListByGroupId(String groupId); List selectListOption(String itemId); List selectListGroup(String formId); @@ -64,5 +64,5 @@ public interface IcFormDao extends BaseDao { * @author wxz * @date 2021.10.28 16:43:00 */ - List listItems(@Param("formId") String formId); + List listItems(@Param("formId") String formId); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormService.java index b1d0dddaf1..c90e6227dc 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/IcFormService.java @@ -22,7 +22,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IcFormDTO; import com.epmet.dto.form.CustomerFormQueryDTO; import com.epmet.dto.result.CustomerFormResultDTO; -import com.epmet.dto.result.FormItem; +import com.epmet.dto.result.FormItemResult; import com.epmet.entity.IcFormEntity; import java.util.List; @@ -115,5 +115,5 @@ public interface IcFormService extends BaseService { * @author wxz * @date 2021.10.27 17:41:59 */ - List listItems(String customerId, String formCode); -} \ No newline at end of file + List listItems(String customerId, String formCode); +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java index 1170a08309..7d50e6091b 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/IcFormServiceImpl.java @@ -17,9 +17,7 @@ package com.epmet.service.impl; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; @@ -35,21 +33,18 @@ import com.epmet.dto.IcFormDTO; import com.epmet.dto.form.CustomerFormQueryDTO; import com.epmet.dto.result.CustomerFormResultDTO; import com.epmet.dto.result.FormGroupDTO; -import com.epmet.dto.result.FormItem; +import com.epmet.dto.result.FormItemResult; import com.epmet.entity.IcFormEntity; import com.epmet.redis.CustomerFootBarRedis; import com.epmet.service.IcFormService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.List; import java.util.Map; -import java.util.Optional; /** * 配置表单 @@ -61,7 +56,7 @@ import java.util.Optional; public class IcFormServiceImpl extends BaseServiceImpl implements IcFormService { @Autowired private CustomerFootBarRedis customerFootBarRedis; - + @Autowired private RedisUtils redisUtils; @@ -135,7 +130,7 @@ public class IcFormServiceImpl extends BaseServiceImpl if (null == resultDTO) { throw new RenException(EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getCode(),EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getMsg()); } - List itemList=baseDao.selectItemList(resultDTO.getFormId(),formDto.getDynamic()); + List itemList=baseDao.selectItemList(resultDTO.getFormId(),formDto.getDynamic()); List groupList=baseDao.selectListGroup(resultDTO.getFormId()); resultDTO.setItemList(itemList); resultDTO.setGroupList(groupList); @@ -144,13 +139,13 @@ public class IcFormServiceImpl extends BaseServiceImpl } @Override - public List listItems(String customerId, String formCode) { + public List listItems(String customerId, String formCode) { // 从redis取 String icFormItemsKey = RedisKeys.getIcFormItemsKey(customerId, formCode); - + Object objValue = redisUtils.get(icFormItemsKey); if (objValue != null) { - return ((JSONArray) objValue).toJavaList(FormItem.class); + return ((JSONArray) objValue).toJavaList(FormItemResult.class); //return JSON.parseObject((String) objValue, type); } @@ -160,14 +155,14 @@ public class IcFormServiceImpl extends BaseServiceImpl throw new RenException(EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getCode(),EpmetErrorCode.CUSTOMER_FORM_NOT_EXITS.getMsg()); } - List formItems = baseDao.listItems(formResultDto.getFormId()); - formItems.forEach(i -> { + List formItemResults = baseDao.listItems(formResultDto.getFormId()); + formItemResults.forEach(i -> { i.setOptions(baseDao.selectListOption(i.getItemId())); }); - + // 缓存 - redisUtils.set(icFormItemsKey, formItems); + redisUtils.set(icFormItemsKey, formItemResults); - return formItems; + return formItemResults; } } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormDao.xml index 44d23cda3f..d93d611f7c 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/IcFormDao.xml @@ -17,7 +17,7 @@ - + @@ -123,13 +123,13 @@ - - + @@ -210,7 +210,7 @@ g.SORT ASC - SELECT fi.ID AS item_id, case when g.TABLE_NAME is null or g.TABLE_NAME = '' then 'ic_resi_user' diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index c92be44a44..0bc25d5ccd 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -29,7 +29,6 @@ import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.aop.NoRepeatSubmit; import com.epmet.commons.tools.constant.NumConstant; -import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.ExceptionUtils; @@ -183,7 +182,7 @@ public class IcResiUserController { @RequestMapping(value = "/exportExcel2") public void exportExcel(@RequestHeader String customerId,@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception { CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(customerId, tokenDto.getUserId()); - String staffOrgPath = StrConstant.EPMETY_STR; + String staffOrgPath = null; if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) { staffOrgPath = staffInfoCacheResult.getAgencyPIds().concat(":").concat(staffInfoCacheResult.getAgencyId()); }else{ @@ -191,53 +190,9 @@ public class IcResiUserController { } pageFormDTO.setCustomerId(customerId); pageFormDTO.setPageFlag(false); - CustomerFormResultDTO resiFormItems = getResiFormItems(pageFormDTO.getCustomerId()); + CustomerFormResultDTO resiFormItems = getResiFormAddItems(pageFormDTO.getCustomerId()); - Map> otherSheetItems = new HashMap<>(); - - //主表的 - for (FormItem formItem : resiFormItems.getItemList()) { - if (StringUtils.isBlank(formItem.getColumnName())) { - continue; - } - - Map itemMap = otherSheetItems.getOrDefault(formItem.getTableName(), new HashMap<>()); - otherSheetItems.putIfAbsent(formItem.getTableName(), itemMap); - if (formItem.getItemType().equals("checkbox") || formItem.getItemType().equals("select") || formItem.getItemType().equals("radio")) { - itemMap.put(formItem.getColumnName().concat(formItem.getColumnNum() == 0 ? "" : formItem.getColumnNum().toString()), formItem); - } - if (formItem.getChildGroup() != null) { - itemMap = otherSheetItems.getOrDefault(formItem.getChildGroup().getTableName(), new HashMap<>()); - otherSheetItems.putIfAbsent(formItem.getChildGroup().getTableName(), itemMap); - for (FormItem2 item2 : formItem.getChildGroup().getItemList()) { - if (StringUtils.isBlank(item2.getColumnName())) { - continue; - } - - if ("checkbox".equals(item2.getItemType()) || "select".equals(item2.getItemType()) || "radio".equals(item2.getItemType())) { - itemMap.put(item2.getColumnName().concat(item2.getColumnNum() == 0 ? "" : item2.getColumnNum().toString()), ConvertUtils.sourceToTarget(item2, FormItem.class)); - } - } - - } - } - //其他sheet - - for (FormGroupDTO groupItem : resiFormItems.getGroupList()) { - if (groupItem.getItemList() == null) { - continue; - } - Map itemMap = otherSheetItems.getOrDefault(groupItem.getTableName(), new HashMap<>()); - otherSheetItems.putIfAbsent(groupItem.getTableName(), itemMap); - for (FormItem2 formItem2 : groupItem.getItemList()) { - if (StringUtils.isBlank(formItem2.getColumnName())) { - continue; - } - if ("checkbox".equals(formItem2.getItemType()) || "select".equals(formItem2.getItemType()) || "radio".equals(formItem2.getItemType())) { - itemMap.put(formItem2.getColumnName().concat(formItem2.getColumnNum() == 0 ? "" : formItem2.getColumnNum().toString()), ConvertUtils.sourceToTarget(formItem2, FormItem.class)); - } - } - } + Map> otherSheetItems = buildItemMap(resiFormItems); Map> resiMainList = icResiUserService.getDataForExport(otherSheetItems.get(BASE_TABLE_NAME),new HashMap<>(), pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), BASE_TABLE_NAME, pageFormDTO.getConditions(),staffInfoCacheResult.getAgencyId(),staffOrgPath); //resiMainList = (List>)JSON.parse("[{\"IS_BDHJ\":\"1\",\"IS_SPECIAL\":\"1\",\"IS_XFRY\":\"0\",\"REMARKS\":\"beizhu\",\"IS_PARTY\":\"1\",\"icResiUserId\":\"yzmtest2\",\"HOME_ID\":\"中海国际社区一里城1号楼1单元101\",\"HOUSE_TYPE\":\"平房\",\"UNIT_NAME\":\"1单元\",\"GRID_ID\":\"市北区-市北区第三网格3\",\"IS_DB\":\"0\",\"GENDER\":\"男\",\"BIRTHDAY\":\"2021-10-04\",\"IS_VETERANS\":\"0\",\"IS_MB\":\"0\",\"IS_UNEMPLOYED\":\"0\",\"DEMAND_NAME\":null,\"IS_KC\":\"0\",\"IS_ENSURE_HOUSE\":\"0\",\"IS_SD\":\"0\",\"NAME\":\"尹作梅\",\"RDSJ\":null,\"IS_VOLUNTEER\":\"1\",\"GRID_ID_VALUE\":\"e74829ffc43d5470eba6b5e060c11e63\",\"IS_SZ\":\"0\",\"IS_CJ\":\"0\",\"HOME_ID_VALUE\":\"200\",\"DEMAND_CATEGORY_IDS\":null,\"VILLAGE_NAME\":\"中海国际社区一里城\",\"IS_DBH\":\"0\",\"IS_SN\":\"0\",\"BUILD_NAME\":\"1号楼\",\"IS_YLFN\":\"0\",\"IS_UNITED_FRONT\":\"0\",\"ID_CARD\":\"371325199310260529\",\"MOBILE\":\"15764229697\",\"IS_OLD_PEOPLE\":\"0\",\"DOOR_NAME\":\"101\"},{\"IS_SPECIAL\":\"1\",\"IS_XFRY\":\"0\",\"REMARKS\":\"beizhu\",\"IS_PARTY\":\"1\",\"icResiUserId\":\"yzmtest\",\"HOME_ID\":\"中海国际社区一里城1号楼1单元101\",\"HOUSE_TYPE\":\"平房\",\"UNIT_NAME\":\"1单元\",\"GRID_ID\":\"市北区-市北区第三网格3\",\"IS_DB\":\"0\",\"GENDER\":\"男\",\"BIRTHDAY\":\"2021-10-04\",\"IS_VETERANS\":\"0\",\"IS_MB\":\"0\",\"IS_UNEMPLOYED\":\"0\",\"DEMAND_NAME\":\"心理咨询\",\"IS_KC\":\"0\",\"IS_ENSURE_HOUSE\":\"0\",\"IS_SD\":\"0\",\"NAME\":\"尹作梅\",\"RDSJ\":\"2021-10-28 00:00:00\",\"IS_VOLUNTEER\":\"1\",\"GRID_ID_VALUE\":\"e74829ffc43d5470eba6b5e060c11e63\",\"IS_SZ\":\"0\",\"IS_CJ\":\"0\",\"HOME_ID_VALUE\":\"200\",\"DEMAND_CATEGORY_IDS\":\"10180002\",\"VILLAGE_NAME\":\"中海国际社区一里城\",\"IS_DBH\":\"0\",\"IS_SN\":\"0\",\"BUILD_NAME\":\"1号楼\",\"IS_YLFN\":\"0\",\"IS_UNITED_FRONT\":\"0\",\"ID_CARD\":\"371325199310260529\",\"MOBILE\":\"15764229697\",\"IS_OLD_PEOPLE\":\"0\",\"DOOR_NAME\":\"101\"}]"); @@ -251,11 +206,11 @@ public class IcResiUserController { System.out.println("===resiMainList==="+" "+JSON.toJSONString(resiMainList.values())); sheetMap.put(0, mapData); AtomicInteger n = new AtomicInteger(); - for (FormItem item : resiFormItems.getItemList()) { + for (FormItemResult item : resiFormItems.getItemList()) { if (item.getChildGroup() != null) { if (!item.getChildGroup().getTableName().equals(BASE_TABLE_NAME)) { - Map itemMap1 = otherSheetItems.get(item.getChildGroup().getTableName()); + Map itemMap1 = otherSheetItems.get(item.getChildGroup().getTableName()); Map> resiChildMap = icResiUserService.getDataForExport(itemMap1,resiMainList, pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), item.getChildGroup().getTableName(), pageFormDTO.getConditions(),staffInfoCacheResult.getAgencyId(),staffOrgPath); //resiChildMap.forEach((key, value) -> value.putAll(resiMainList.get(key))); @@ -274,8 +229,9 @@ public class IcResiUserController { @RequestMapping(value = "/exportExcel") public void exportExcelByEasyExcel(@RequestHeader String customerId,@LoginUser TokenDto tokenDto, @RequestBody IcResiUserPageFormDTO pageFormDTO, HttpServletResponse response) throws Exception { + //tokenDto.setUserId("9e37adcce6472152e6508a19d3683e02"); CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(customerId, tokenDto.getUserId()); - String staffOrgPath = StrConstant.EPMETY_STR; + String staffOrgPath = null; if (StringUtils.isNotBlank(staffInfoCacheResult.getAgencyPIds()) && !NumConstant.ZERO_STR.equals(staffInfoCacheResult.getAgencyPIds())) { staffOrgPath = staffInfoCacheResult.getAgencyPIds().concat(":").concat(staffInfoCacheResult.getAgencyId()); }else{ @@ -283,53 +239,12 @@ public class IcResiUserController { } pageFormDTO.setCustomerId(customerId); pageFormDTO.setPageFlag(false); - CustomerFormResultDTO resiFormItems = getResiFormItems(pageFormDTO.getCustomerId()); - - Map> otherSheetItems = new HashMap<>(); - - //主表的 - for (FormItem formItem : resiFormItems.getItemList()) { - if (StringUtils.isBlank(formItem.getColumnName())) { - continue; - } - - Map itemMap = otherSheetItems.getOrDefault(formItem.getTableName(), new HashMap<>()); - otherSheetItems.putIfAbsent(formItem.getTableName(), itemMap); - if (formItem.getItemType().equals("checkbox") || formItem.getItemType().equals("select") || formItem.getItemType().equals("radio")) { - itemMap.put(formItem.getColumnName().concat(formItem.getColumnNum() == 0 ? "" : formItem.getColumnNum().toString()), formItem); - } - if (formItem.getChildGroup() != null) { - itemMap = otherSheetItems.getOrDefault(formItem.getChildGroup().getTableName(), new HashMap<>()); - otherSheetItems.putIfAbsent(formItem.getChildGroup().getTableName(), itemMap); - for (FormItem2 item2 : formItem.getChildGroup().getItemList()) { - if (StringUtils.isBlank(item2.getColumnName())) { - continue; - } - - if ("checkbox".equals(item2.getItemType()) || "select".equals(item2.getItemType()) || "radio".equals(item2.getItemType())) { - itemMap.put(item2.getColumnName().concat(item2.getColumnNum() == 0 ? "" : item2.getColumnNum().toString()), ConvertUtils.sourceToTarget(item2, FormItem.class)); - } - } + CustomerFormResultDTO resiFormItems = getResiFormAddItems(pageFormDTO.getCustomerId()); + Map> otherSheetItems = buildItemMap(resiFormItems); - } - } - //其他sheet + /*List resiFormAllItems = getResiFormAllItems(pageFormDTO.getCustomerId()); + resiFormAllItems.stream().collect(Collectors.groupingBy(e ->e.get));*/ - for (FormGroupDTO groupItem : resiFormItems.getGroupList()) { - if (groupItem.getItemList() == null) { - continue; - } - Map itemMap = otherSheetItems.getOrDefault(groupItem.getTableName(), new HashMap<>()); - otherSheetItems.putIfAbsent(groupItem.getTableName(), itemMap); - for (FormItem2 formItem2 : groupItem.getItemList()) { - if (StringUtils.isBlank(formItem2.getColumnName())) { - continue; - } - if ("checkbox".equals(formItem2.getItemType()) || "select".equals(formItem2.getItemType()) || "radio".equals(formItem2.getItemType())) { - itemMap.put(formItem2.getColumnName().concat(formItem2.getColumnNum() == 0 ? "" : formItem2.getColumnNum().toString()), ConvertUtils.sourceToTarget(formItem2, FormItem.class)); - } - } - } Map> resiMainList = icResiUserService.getDataForExport(otherSheetItems.get(BASE_TABLE_NAME),new HashMap<>(), pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), BASE_TABLE_NAME, pageFormDTO.getConditions(),staffInfoCacheResult.getAgencyId(),staffOrgPath); @@ -346,11 +261,11 @@ public class IcResiUserController { //======================================= AtomicInteger n = new AtomicInteger(); - for (FormItem item : resiFormItems.getItemList()) { + for (FormItemResult item : resiFormItems.getItemList()) { if (item.getChildGroup() != null) { if (!item.getChildGroup().getTableName().equals(BASE_TABLE_NAME)) { - Map itemMap1 = otherSheetItems.get(item.getChildGroup().getTableName()); + Map itemMap1 = otherSheetItems.get(item.getChildGroup().getTableName()); Map> resiChildMap = icResiUserService.getDataForExport(itemMap1,resiMainList, pageFormDTO.getCustomerId(), pageFormDTO.getFormCode(), item.getChildGroup().getTableName(), pageFormDTO.getConditions(),staffInfoCacheResult.getAgencyId(),staffOrgPath); //resiChildMap.forEach((key, value) -> value.putAll(resiMainList.get(key))); @@ -365,6 +280,57 @@ public class IcResiUserController { excelWriter.finish(); } + + @NotNull + private Map> buildItemMap(CustomerFormResultDTO resiFormItems) { + Map> otherSheetItems = new HashMap<>(); + + //主表的 + for (FormItemResult formItemResult : resiFormItems.getItemList()) { + if (StringUtils.isBlank(formItemResult.getColumnName())) { + continue; + } + + Map itemMap = otherSheetItems.getOrDefault(formItemResult.getTableName(), new HashMap<>()); + otherSheetItems.putIfAbsent(formItemResult.getTableName(), itemMap); + if (formItemResult.getItemType().equals("checkbox") || formItemResult.getItemType().equals("select") || formItemResult.getItemType().equals("radio")) { + itemMap.put(formItemResult.getColumnName().concat(formItemResult.getColumnNum() == 0 ? "" : formItemResult.getColumnNum().toString()), formItemResult); + } + if (formItemResult.getChildGroup() != null) { + itemMap = otherSheetItems.getOrDefault(formItemResult.getChildGroup().getTableName(), new HashMap<>()); + otherSheetItems.putIfAbsent(formItemResult.getChildGroup().getTableName(), itemMap); + for (FormItemResult2 item2 : formItemResult.getChildGroup().getItemList()) { + if (StringUtils.isBlank(item2.getColumnName())) { + continue; + } + + if ("checkbox".equals(item2.getItemType()) || "select".equals(item2.getItemType()) || "radio".equals(item2.getItemType())) { + itemMap.put(item2.getColumnName().concat(item2.getColumnNum() == 0 ? "" : item2.getColumnNum().toString()), ConvertUtils.sourceToTarget(item2, FormItemResult.class)); + } + } + + } + } + //其他sheet + + for (FormGroupDTO groupItem : resiFormItems.getGroupList()) { + if (groupItem.getItemList() == null) { + continue; + } + Map itemMap = otherSheetItems.getOrDefault(groupItem.getTableName(), new HashMap<>()); + otherSheetItems.putIfAbsent(groupItem.getTableName(), itemMap); + for (FormItemResult2 formItemResult2 : groupItem.getItemList()) { + if (StringUtils.isBlank(formItemResult2.getColumnName())) { + continue; + } + if ("checkbox".equals(formItemResult2.getItemType()) || "select".equals(formItemResult2.getItemType()) || "radio".equals(formItemResult2.getItemType())) { + itemMap.put(formItemResult2.getColumnName().concat(formItemResult2.getColumnNum() == 0 ? "" : formItemResult2.getColumnNum().toString()), ConvertUtils.sourceToTarget(formItemResult2, FormItemResult.class)); + } + } + } + return otherSheetItems; + } + private static OutputStream getOutputStream(String fileName, HttpServletResponse response) throws Exception { fileName = URLEncoder.encode(fileName, "UTF-8"); response.setContentType("application/vnd.ms-excel"); @@ -449,7 +415,7 @@ public class IcResiUserController { } @NotNull - private CustomerFormResultDTO getResiFormItems(String customerId) { + private CustomerFormResultDTO getResiFormAddItems(String customerId) { CustomerFormQueryDTO queryDTO = new CustomerFormQueryDTO(); queryDTO.setFormCode("resi_base_info"); queryDTO.setCustomerId(customerId); @@ -461,6 +427,19 @@ public class IcResiUserController { return resultForm.getData(); } + @NotNull + private List getResiFormAllItems(String customerId) { + CustomerFormQueryDTO queryDTO = new CustomerFormQueryDTO(); + queryDTO.setFormCode("resi_base_info"); + queryDTO.setCustomerId(customerId); + Result> resultForm = operCustomizeOpenFeignClient.listItems(queryDTO); + if (resultForm == null || !resultForm.success() || resultForm.getData() == null) { + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); + } + System.out.println(JSON.toJSONString(resultForm.getData())); + return resultForm.getData(); + } + /** * @Description 个人信息-家庭关系 * @Param formDTO diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java index 61f0a2c35b..478ab8f65f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java @@ -113,7 +113,7 @@ public interface IcResiUserService extends BaseService { * @param conditions * @return */ - Map> getDataForExport(Map itemList, Map> resiMainList, String customerId, String formCode, String baseTableName, List conditions,String currentStaffAgencyId, + Map> getDataForExport(Map itemList, Map> resiMainList, String customerId, String formCode, String baseTableName, List conditions,String currentStaffAgencyId, String staffOrgPath); /** diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java index 076a880ff0..eeaa8c03e7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserImportServiceImpl.java @@ -5,7 +5,6 @@ import cn.afterturn.easypoi.excel.annotation.Excel; import cn.afterturn.easypoi.excel.entity.ExportParams; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcelFactory; -import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.dto.result.OptionResultDTO; @@ -21,7 +20,7 @@ import com.epmet.dto.form.AgencyIdFormDTO; import com.epmet.dto.form.CustomerFormQueryDTO; import com.epmet.dto.form.HouseFormDTO; import com.epmet.dto.form.LoginUserDetailsFormDTO; -import com.epmet.dto.result.FormItem; +import com.epmet.dto.result.FormItemResult; import com.epmet.dto.result.LoginUserDetailsResultDTO; import com.epmet.dto.result.OptionDTO; import com.epmet.entity.IcResiUserEntity; @@ -262,7 +261,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res Map> headers = mergeHead(headList); // 查询form相关信息 - List customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE); + List customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE); // 清洗表头数据 Map abandonedHeaders = washHeaders(headers, customerItems); @@ -271,7 +270,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res HashMap> combinedHeaders = combineHeaders(headers); // 得到客户配置item数据 - Map formItemMap = customerItems.stream().collect( + Map formItemMap = customerItems.stream().collect( Collectors.toMap(formItem -> { String groupLabel = formItem.getGroupLabel(); String label = formItem.getLabel(); @@ -311,7 +310,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res Map> headers = mergeHead(headList); // 查询form相关信息 - List customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE); + List customerItems = listFormItems(IMPORT_IC_RESI_FORM_CODE); // 清洗表头数据 Map abandonedHeaders = washHeaders(headers, customerItems); @@ -320,7 +319,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res HashMap> combinedHeaders = combineHeaders(headers); // 得到客户配置item数据 - Map formItemMap = customerItems.stream().collect( + Map formItemMap = customerItems.stream().collect( Collectors.toMap(formItem -> { String groupLabel = formItem.getGroupLabel(); String label = formItem.getLabel(); @@ -461,7 +460,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res // skipedRow.setInfo("信息已存在,跳过导入"); // skipedRow.setTableName(targetTableName); // skipedRows.get().get(targetTableName).add(skipedRow); - // + // // continue; //} @@ -603,10 +602,10 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res * @param formCode * @return */ - private List listFormItems(String formCode) { + private List listFormItems(String formCode) { CustomerFormQueryDTO form = new CustomerFormQueryDTO(); form.setFormCode(formCode); - Result> result = operCustomizeOpenFeignClient.listItems(form); + Result> result = operCustomizeOpenFeignClient.listItems(form); return getResultDataOrThrowsException(result, ServiceConstant.OPER_CUSTOMIZE_SERVER, EpmetErrorCode.SERVER_ERROR.getCode(), "【居民信息excel导入】查询表单相关信息失败"); } @@ -643,7 +642,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res * @author wxz * @date 2021.10.28 21:07:12 */ - private Map washHeaders(Map> headers, List items) { + private Map washHeaders(Map> headers, List items) { List itemLabels = items.stream().map(i -> i.getLabel()).collect(Collectors.toList()); Map abandonedHeaders = new HashMap<>(); for (Map.Entry> entry:headers.entrySet()) { @@ -675,7 +674,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res * @param abandonedHeaders * @return */ - private Map convertExcelHeaders2DBColumnWrappers(Map formItemMap, Map> combinedHeaders, + private Map convertExcelHeaders2DBColumnWrappers(Map formItemMap, Map> combinedHeaders, List> datas, Map abandonedHeaders) { // HashMap> tables = new HashMap<>(); @@ -684,7 +683,7 @@ public class IcResiUserImportServiceImpl implements IcResiUserImportService, Res for (Map.Entry> entry : combinedHeaders.entrySet()) { String combinedHeader = entry.getKey(); - FormItem item = formItemMap.get(combinedHeader); + FormItemResult item = formItemMap.get(combinedHeader); if (item == null) { // 如果数据库中没有该项,可能是用户自己定义的项,忽略 diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 8ebec910a8..351c5058b3 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -621,7 +621,7 @@ public class IcResiUserServiceImpl extends BaseServiceImpl> getDataForExport(Map formItemMap, Map> resiMainList, String customerId, String formCode, String baseTableName, List conditions, + public Map> getDataForExport(Map formItemMap, Map> resiMainList, String customerId, String formCode, String baseTableName, List conditions, String currentStaffAgencyId, String staffOrgPath) { List> mapList = this.dynamicQuery(customerId, formCode, baseTableName, conditions,currentStaffAgencyId,staffOrgPath); @@ -647,9 +647,9 @@ public class IcResiUserServiceImpl extends BaseServiceImpl e : formItemMap.entrySet()) { + for (Map.Entry e : formItemMap.entrySet()) { String k = e.getKey(); - FormItem v = e.getValue(); + FormItemResult v = e.getValue(); Object temp = map.get(k); String vauleStr = temp == null ? "" : temp.toString(); diff --git a/epmet-user/epmet-user-server/src/test/java/com/epmet/epmetuser/test/IcResiUserControllerTest.java b/epmet-user/epmet-user-server/src/test/java/com/epmet/epmetuser/test/IcResiUserControllerTest.java index 4e08497a8e..4bf7b1c16c 100644 --- a/epmet-user/epmet-user-server/src/test/java/com/epmet/epmetuser/test/IcResiUserControllerTest.java +++ b/epmet-user/epmet-user-server/src/test/java/com/epmet/epmetuser/test/IcResiUserControllerTest.java @@ -11,7 +11,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dto.form.CustomerFormQueryDTO; import com.epmet.dto.result.CustomerFormResultDTO; import com.epmet.dto.result.FormGroupDTO; -import com.epmet.dto.result.FormItem; +import com.epmet.dto.result.FormItemResult; import com.epmet.feign.OperCustomizeOpenFeignClient; import org.apache.commons.lang3.StringUtils; import org.apache.poi.xssf.usermodel.XSSFWorkbook; @@ -75,7 +75,7 @@ public class IcResiUserControllerTest { private Map> buildHeaderByItem(CustomerFormResultDTO resultForm) { //form中的itemlist 为一级表头 但是要排除每个item中含有childGroup的 - List itemList = resultForm.getItemList(); + List itemList = resultForm.getItemList(); List groupList = resultForm.getGroupList(); Map> everySheetHeaderMap = new LinkedHashMap<>(); @@ -155,7 +155,7 @@ public class IcResiUserControllerTest { return everySheetHeaderMap; } - private void buildHeader(Map> everySheetHeaderMap, FormItem item, ExcelExportEntity header) { + private void buildHeader(Map> everySheetHeaderMap, FormItemResult item, ExcelExportEntity header) { List firstSheetHeaderList = new ArrayList<>(); List secondHeaderList = new ArrayList<>(); item.getChildGroup().getItemList().forEach(item2->{