Browse Source

list-for-export

dev_shibei_match
yinzuomei 4 years ago
parent
commit
ae76b39e78
  1. 26
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ListForExportFormDTO.java
  2. 11
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java
  3. 5
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java
  4. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java
  5. 89
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java
  6. 41
      epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

26
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ListForExportFormDTO.java

@ -0,0 +1,26 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* @Description 不分页导出查询
* @Author yinzuomei
* @Date 2021/11/1 3:33 下午
*/
@Data
public class ListForExportFormDTO implements Serializable {
@NotBlank(message = "formCode不能为空", groups = IcResiUserPageFormDTO.AddUserInternalGroup.class)
private String formCode;
@NotBlank(message = "customerId不能为空", groups = IcResiUserPageFormDTO.AddUserInternalGroup.class)
private String customerId;
/**
* 表对应的字段及值
*/
private List<ResiUserQueryValueDTO> conditions;
}

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

@ -35,10 +35,7 @@ import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.IcResiUserDTO;
import com.epmet.dto.form.CustomerFormQueryDTO;
import com.epmet.dto.form.IcResiDetailFormDTO;
import com.epmet.dto.form.IcResiUserFormDTO;
import com.epmet.dto.form.IcResiUserPageFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CustomerFormResultDTO;
import com.epmet.dto.result.FormGroupDTO;
import com.epmet.dto.result.FormItem;
@ -303,4 +300,10 @@ public class IcResiUserController {
ValidatorUtils.validateEntity(pageFormDTO,IcResiDetailFormDTO.AddUserInternalGroup.class);
return new Result().ok(icResiUserService.queryIcResiDetail(pageFormDTO));
}
@PostMapping("list-for-export")
public Result<List<Map<String,Object>>> queryListForExport(@RequestHeader(required = false) String customerId,@RequestBody ListForExportFormDTO formDTO){
formDTO.setCustomerId(customerId);
return new Result<List<Map<String,Object>>>().ok(icResiUserService.queryListForExport(formDTO));
}
}

5
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/IcResiUserDao.java

@ -73,4 +73,9 @@ public interface IcResiUserDao extends BaseDao<IcResiUserEntity> {
* @date 2021/10/28 11:19 上午
*/
List<Map<String, Object>> selectSubTableRecords(@Param("icResiUserId") String icResiUserId,@Param("tableName") String tableName);
List<Map<String, Object>> selectListResiMapForExport(@Param("customerId") String customerId,
@Param("formCode")String formCode,
@Param("conditions")List<ResiUserQueryValueDTO> conditions,
@Param("subTables")List<String> subTables);
}

3
epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java

@ -24,6 +24,7 @@ import com.epmet.dto.IcResiUserDTO;
import com.epmet.dto.form.IcResiDetailFormDTO;
import com.epmet.dto.form.IcResiUserFormDTO;
import com.epmet.dto.form.IcResiUserPageFormDTO;
import com.epmet.dto.form.ListForExportFormDTO;
import com.epmet.entity.IcResiUserEntity;
import java.util.List;
@ -119,4 +120,6 @@ public interface IcResiUserService extends BaseService<IcResiUserEntity> {
* @date 2021/10/28 10:29 上午
*/
Map queryIcResiDetail(IcResiDetailFormDTO pageFormDTO);
List<Map<String, Object>> queryListForExport(ListForExportFormDTO formDTO);
}

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

@ -35,10 +35,7 @@ import com.epmet.constant.UserConstant;
import com.epmet.dao.IcResiUserDao;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.IcResiUserDTO;
import com.epmet.dto.form.CustomerFormQueryDTO;
import com.epmet.dto.form.IcResiDetailFormDTO;
import com.epmet.dto.form.IcResiUserFormDTO;
import com.epmet.dto.form.IcResiUserPageFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.AllGridsByUserIdResultDTO;
import com.epmet.dto.result.HouseInfoDTO;
import com.epmet.dto.result.IcFormResColumnDTO;
@ -381,4 +378,88 @@ public class IcResiUserServiceImpl extends BaseServiceImpl<IcResiUserDao, IcResi
}
return resultMap;
}
@Override
public List<Map<String, Object>> queryListForExport(ListForExportFormDTO formDTO) {
// 查询列表展示项需要用到哪些子表
CustomerFormQueryDTO queryDTO1=new CustomerFormQueryDTO();
queryDTO1.setCustomerId(formDTO.getCustomerId());
queryDTO1.setFormCode(formDTO.getFormCode());
Result<List<String>> subTablesRes=operCustomizeOpenFeignClient.querySubTables(queryDTO1);
List<String> subTables =subTablesRes.success()&&!CollectionUtils.isEmpty(subTablesRes.getData())?subTablesRes.getData():new ArrayList<>();
List<Map<String,Object>> list=baseDao.selectListResiMapForExport(formDTO.getCustomerId(),
formDTO.getFormCode(),
formDTO.getConditions(),
subTables);
//查询网格名称
List<String> gridIds = new ArrayList<>();
Set<String> houseIds = new HashSet<>();
for (Map<String, Object> map : list) {
log.warn(JSON.toJSONString(map));
if (map.containsKey(UserConstant.GRID_ID) && null != map.get(UserConstant.GRID_ID) && StringUtils.isNotBlank(map.get(UserConstant.GRID_ID).toString())) {
gridIds.add(map.get(UserConstant.GRID_ID).toString());
}
if (map.containsKey("HOME_ID") && null != map.get("HOME_ID") && StringUtils.isNotBlank(map.get("HOME_ID").toString())) {
houseIds.add(map.get("HOME_ID").toString());
}
}
Result<List<AllGridsByUserIdResultDTO>> gridInfoRes=govOrgOpenFeignClient.getGridListByGridIds(gridIds);
List<AllGridsByUserIdResultDTO> gridInfoList = gridInfoRes.success() && !CollectionUtils.isEmpty(gridInfoRes.getData()) ? gridInfoRes.getData() : new ArrayList<>();
Map<String, AllGridsByUserIdResultDTO> gridInfoMap = gridInfoList.stream().collect(Collectors.toMap(AllGridsByUserIdResultDTO::getGridId, Function.identity()));
//查询房子名称
Result<List<HouseInfoDTO>> houseInfoRes=govOrgOpenFeignClient.queryListHouseInfo(houseIds);
List<HouseInfoDTO> houseInfoDTOList = houseInfoRes.success() && !CollectionUtils.isEmpty(houseInfoRes.getData()) ? houseInfoRes.getData() : new ArrayList<>();
Map<String, HouseInfoDTO> houseInfoMap = houseInfoDTOList.stream().collect(Collectors.toMap(HouseInfoDTO::getHomeId, Function.identity()));
for (Map<String, Object> resultMap : list) {
String gridIdValue = null != resultMap.get(UserConstant.GRID_ID) ? resultMap.get(UserConstant.GRID_ID).toString() : StrConstant.EPMETY_STR;
resultMap.put("GRID_ID_VALUE", gridIdValue);
if (null != gridInfoMap && gridInfoMap.containsKey(gridIdValue) && null != gridInfoMap.get(gridIdValue)) {
//GRID_NAME
resultMap.put(UserConstant.GRID_ID, gridInfoMap.get(gridIdValue).getGridName());
}
String homeId = null != resultMap.get("HOME_ID") ? resultMap.get("HOME_ID").toString() : StrConstant.EPMETY_STR;
resultMap.put("HOME_ID_VALUE", homeId);
if (null != houseInfoMap && houseInfoMap.containsKey(homeId) && null != houseInfoMap.get(homeId)) {
HouseInfoDTO houseInfoDTO = houseInfoMap.get(homeId);
String buildName = StringUtils.isNotBlank(houseInfoDTO.getBuildingName()) ? houseInfoDTO.getBuildingName() : StrConstant.EPMETY_STR;
resultMap.put("BUILD_NAME", buildName);
String neighBorName = StringUtils.isNotBlank(houseInfoDTO.getNeighborHoodName()) ? houseInfoDTO.getNeighborHoodName() : StrConstant.EPMETY_STR;
resultMap.put("VILLAGE_NAME", neighBorName);
String unitName = StringUtils.isNotBlank(houseInfoDTO.getUnitName()) ? houseInfoDTO.getUnitName() : StrConstant.EPMETY_STR;
resultMap.put("UNIT_NAME", unitName);
String doorName = StringUtils.isNotBlank(houseInfoDTO.getDoorName()) ? houseInfoDTO.getDoorName() : StrConstant.EPMETY_STR;
resultMap.put("DOOR_NAME", doorName);
String houseType = StringUtils.isNotBlank(houseInfoDTO.getHouseType()) ? houseInfoDTO.getHouseType() : StrConstant.EPMETY_STR;
//房屋类型,1楼房,2平房,3别墅
resultMap.put(UserConstant.HOUSE_TYPE_KEY, "");
if (HouseTypeEnum.LOUFANG.getCode().equals(houseType)) {
resultMap.put(UserConstant.HOUSE_TYPE_KEY, HouseTypeEnum.LOUFANG.getName());
} else if (HouseTypeEnum.PINGFANG.getCode().equals(houseType)) {
resultMap.put(UserConstant.HOUSE_TYPE_KEY, HouseTypeEnum.PINGFANG.getName());
} else if (HouseTypeEnum.BIESHU.getCode().equals(houseType)) {
resultMap.put(UserConstant.HOUSE_TYPE_KEY, HouseTypeEnum.BIESHU.getName());
}
resultMap.put("HOME_ID", neighBorName.concat(buildName).concat(unitName).concat(doorName));
}
if (resultMap.containsKey(UserConstant.GENDER)) {
String genderValue = null != resultMap.get(UserConstant.GENDER) ? resultMap.get(UserConstant.GENDER).toString() : StrConstant.EPMETY_STR;
if (GenderEnum.MAN.getCode().equals(genderValue)) {
resultMap.put(UserConstant.GENDER, GenderEnum.MAN.getName());
} else if (GenderEnum.WOMAN.getCode().equals(genderValue)) {
resultMap.put(UserConstant.GENDER, GenderEnum.WOMAN.getName());
} else if (GenderEnum.UN_KNOWN.getCode().equals(genderValue)) {
resultMap.put(UserConstant.GENDER, GenderEnum.UN_KNOWN.getName());
}
}
}
return list;
}
}

41
epmet-user/epmet-user-server/src/main/resources/mapper/IcResiUserDao.xml

@ -90,4 +90,45 @@
group by IC_RESI_USER.id
order by ic_resi_user.CREATED_TIME desc
</select>
<select id="selectListResiMapForExport" parameterType="map" resultType="map">
select
*,
ic_resi_user.id as icResiUserId
FROM
ic_resi_user
<if test="null != subTables and subTables.size() > 0">
<foreach item="subTableName" collection="subTables" open="" separator="" close="">
${subTableName}
</foreach>
</if>
left join ic_resi_demand_dict
on(ic_resi_user.customer_id=ic_resi_demand_dict.CUSTOMER_ID
and ic_resi_demand.CATEGORY_CODE=ic_resi_demand_dict.CATEGORY_CODE )
WHERE
ic_resi_user.DEL_FLAG = '0'
and ic_resi_user.customer_id=#{customerId}
<if test="null != conditions and conditions.size() > 0">
<foreach item="subCondition" collection="conditions" open="" separator="" close="">
<if test="null != subCondition.columnValue and subCondition.columnValue.size() > 0">
<if test="subCondition.queryType!= null and subCondition.queryType == 'equal' ">
and ${subCondition.tableName}.${subCondition.columnName} = #{subCondition.columnValue[0]}
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'like' ">
and ${subCondition.tableName}.${subCondition.columnName} like concat('%',#{subCondition.columnValue[0]},'%')
</if>
<if test="subCondition.queryType!= null and subCondition.queryType == 'daterange' ">
and ${subCondition.tableName}.${subCondition.columnName} between #{subCondition.columnValue[0]} and #{subCondition.columnValue[1]}
</if>
</if>
</foreach>
</if>
group by IC_RESI_USER.id
order by ic_resi_user.CREATED_TIME desc
</select>
</mapper>
Loading…
Cancel
Save