Browse Source

Merge branch 'yantai_zhengwu_master' into dev

master
lichao 2 years ago
parent
commit
79471193ce
  1. 10
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcBuildingDTO.java
  2. 27
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java
  3. 7
      epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CommunityBuildingManagerDTO.java
  4. 25
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java
  5. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CommunityBuildingManagerEntity.java
  6. 10
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcBuildingEntity.java
  7. 13
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcNeighborHoodExcel.java
  8. 120
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/CommunityBuildingManagerImportListener.java
  9. 116
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/CommunityBuildingManagerImportExcelData.java
  10. 12
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/NeighborHoodInfoModel.java
  11. 14
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CommunityBuildingManagerService.java
  12. 6
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcBuildingService.java
  13. 382
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java
  14. 20
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcBuildingServiceImpl.java
  15. 21
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java
  16. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java
  17. BIN
      epmet-module/gov-org/gov-org-server/src/main/resources/excel/neighbor_export.xlsx
  18. BIN
      epmet-module/gov-org/gov-org-server/src/main/resources/excel/neighbor_export_0510.xlsx
  19. BIN
      epmet-module/gov-org/gov-org-server/src/main/resources/excel/neighbor_template.xlsx
  20. BIN
      epmet-module/gov-org/gov-org-server/src/main/resources/excel/neighbor_template_0510.xlsx
  21. 24
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml

10
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcBuildingDTO.java

@ -96,6 +96,16 @@ public class IcBuildingDTO implements Serializable {
*/
private String buildingLeaderMobile;
/**
* 烟台需求楼长身份证号
*/
private String buildingLeaderIdCard;
/**
* 烟台需求类型0楼长1单元长
*/
private String buildingLeaderType;
/**
* 中心点位经度
*/

27
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/ImportGeneralDTO.java

@ -183,4 +183,31 @@ public class ImportGeneralDTO implements Serializable {
*/
private Boolean buildingUpdateStatus = false;
private Boolean neighborHoodUpdateStatus = false;
/**
* 烟台需求自然村/小区
*/
private String viliageType;
/**
* 烟台需求自然村/小区
*/
private String viliageTypeName;
/**
* 烟台需求面积
*/
private String area;
/**
* 烟台需求开放类型
*/
private String openType;
/**
* 烟台需求开放类型
*/
private String openTypeName;
/**
* 烟台需求建筑年代
*/
private String buildYear;
}

7
epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/CommunityBuildingManagerDTO.java

@ -60,6 +60,7 @@ public class CommunityBuildingManagerDTO implements Serializable {
*/
@NotBlank(message ="类型不能为空" ,groups = {AddShowGroup.class,UpdateShowGroup.class})
private String type;
private String typeName;
/**
* 所属区县id取名字关联customer_agency
@ -84,6 +85,7 @@ public class CommunityBuildingManagerDTO implements Serializable {
*/
@NotBlank(message ="所属网格不能为空" ,groups = {AddShowGroup.class,UpdateShowGroup.class})
private String gridId;
private String gridName;
/**
* 网格的全路径包含网格id
@ -95,16 +97,19 @@ public class CommunityBuildingManagerDTO implements Serializable {
*/
@NotBlank(message ="所属小区不能为空" ,groups = {AddShowGroup.class,UpdateShowGroup.class})
private String viliageId;
private String viliageName;
/**
* 所属楼栋id
*/
@NotBlank(message ="楼栋不能为空" ,groups = {AddShowGroup.class,UpdateShowGroup.class})
private String buildingId;
private String buildingName;
/**
* 所属单元id; 单元长时必填此列
* 所属单元id
*/
private String unitId;
private String unitName;
}

25
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java

@ -10,20 +10,26 @@ 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.ServiceConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.feign.ResultDataResolver;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.FileUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dto.form.yt.CommunityBuildingManagerPageFormDTO;
import com.epmet.dto.result.CommunityBuildingManagerDTO;
import com.epmet.dto.result.ImportTaskCommonResultDTO;
import com.epmet.dto.result.yt.CommunityBuildingManagerResultDTO;
import com.epmet.service.CommunityBuildingManagerService;
import com.epmet.utils.ImportTaskUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.apache.poi.ss.usermodel.IndexedColors;
@ -36,12 +42,15 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.URLEncoder;
import java.nio.file.Path;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
@ -84,7 +93,7 @@ public class CommunityBuildingManagerController implements ResultDataResolver {
/**
* 新增楼长/单元长
* todo: 同步到具体的楼栋
* 同步到具体的楼栋
* @param dto
* @return
*/
@ -103,7 +112,7 @@ public class CommunityBuildingManagerController implements ResultDataResolver {
/**
* 编辑楼长/单元长
* todo: 同步到具体的楼栋
* 同步到具体的楼栋
* @param dto
* @return
*/
@ -121,7 +130,7 @@ public class CommunityBuildingManagerController implements ResultDataResolver {
/**
* 批量删除楼长/单元长
* todo: 同时清空楼栋表里的信息
* 同时清空楼栋表里的信息
* @param ids
* @return
*/
@ -215,9 +224,11 @@ public class CommunityBuildingManagerController implements ResultDataResolver {
* @return
*/
@PostMapping("import")
public Result importExcel(@RequestPart("file") MultipartFile file) {
return new Result();
/*// 1.暂存文件
public Result importExcel(@LoginUser TokenDto tokenDto,@RequestPart("file") MultipartFile file) {
// 只有社区级账号可以导入
communityBuildingManagerService.checkImportPermission(tokenDto.getCustomerId(),tokenDto.getUserId());
// 1.暂存文件
String originalFilename = file.getOriginalFilename();
String extName = originalFilename.substring(originalFilename.lastIndexOf("."));
@ -255,7 +266,7 @@ public class CommunityBuildingManagerController implements ResultDataResolver {
// 3.执行导入
communityBuildingManagerService.execAsyncExcelImport(fileSavePath, rstData.getTaskId());
return new Result();*/
return new Result();
}

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/CommunityBuildingManagerEntity.java

@ -79,7 +79,7 @@ public class CommunityBuildingManagerEntity extends BaseEpmetEntity {
private String buildingId;
/**
* 所属单元id; 单元长时必填此列
* 所属单元id
*/
private String unitId;

10
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcBuildingEntity.java

@ -92,6 +92,16 @@ public class IcBuildingEntity extends BaseEpmetEntity {
*/
private String buildingLeaderMobile;
/**
* 烟台需求楼长身份证号
*/
private String buildingLeaderIdCard;
/**
* 烟台需求类型0楼长1单元长
*/
private String buildingLeaderType;
/**
* 中心点位经度
*/

13
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/IcNeighborHoodExcel.java

@ -18,6 +18,7 @@
package com.epmet.excel;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.epmet.util.ExcelVerifyInfo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
@ -108,6 +109,18 @@ public class IcNeighborHoodExcel extends ExcelVerifyInfo implements Serializable
@Length(max=50,message = "不能超过50个字")
private String neighborHoodName;
@Excel(name = "小区/自然村类型")
private String viliageTypeName;
@Excel(name = "面积")
private String area;
@Excel(name = "开放类型")
private String openTypeName;
@Excel(name = "建筑年代")
private String buildYear;
@Excel(name = "关联物业")
private String propertyName;

120
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/CommunityBuildingManagerImportListener.java

@ -0,0 +1,120 @@
package com.epmet.excel.handler;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.ValidateException;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.ObjectUtil;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.result.CommunityBuildingManagerDTO;
import com.epmet.excel.yt.CommunityBuildingManagerImportExcelData;
import com.epmet.service.impl.CommunityBuildingManagerServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @Description
* @Author yzm
* @Date 2023/5/9 16:26
*/
@Slf4j
public class CommunityBuildingManagerImportListener implements ReadListener<CommunityBuildingManagerImportExcelData> {
// 最大条数阈值
public static final int MAX_THRESHOLD = 200;
private Map<String, String> gridMap;
private String customerId;
private String staffId;
private String agencyId;
private String districtId;
private String streetId;
private String rediPrex;
private CommunityBuildingManagerServiceImpl communityBuildingManagerService;
// 错误项列表
private List<CommunityBuildingManagerImportExcelData.ErrorRow> errorRows = new ArrayList<>();
// 要插入的数据
private List<CommunityBuildingManagerDTO> excelDataList = new ArrayList<>();
public CommunityBuildingManagerImportListener(Map<String, String> gridMap,String customerId, String staffId, String agencyId, String districtId, String streetId, String rediPrex, CommunityBuildingManagerServiceImpl communityBuildingManagerService) {
this.gridMap=gridMap;
this.customerId = customerId;
this.staffId = staffId;
this.agencyId=agencyId;
this.districtId=districtId;
this.streetId=streetId;
this.rediPrex=rediPrex;
this.communityBuildingManagerService = communityBuildingManagerService;
}
@Override
public void invoke(CommunityBuildingManagerImportExcelData data, AnalysisContext analysisContext) {
try {
// log.warn("有数据吗?"+JSON.toJSONString(data));
// 不能为空先校验数据
ValidatorUtils.validateEntity(data);
// 去除空格
ObjectUtil.objectToTrim(data);
CommunityBuildingManagerDTO communityBuildingManagerDTO = ConvertUtils.sourceToTarget(data, CommunityBuildingManagerDTO.class);
communityBuildingManagerDTO.setCustomerId(customerId);
communityBuildingManagerDTO.setCommunityId(agencyId);
communityBuildingManagerDTO.setType("单元长".equals(data.getTypeName()) ? NumConstant.ONE_STR : NumConstant.ZERO_STR);
excelDataList.add(communityBuildingManagerDTO);
if (excelDataList.size() == MAX_THRESHOLD) {
execPersist();
}
} catch (Exception e) {
String errorMsg = null;
if (e instanceof ValidateException) {
errorMsg = ((ValidateException) e).getMsg();
} else if (e instanceof EpmetException) {
errorMsg = ((EpmetException) e).getMsg();
} else {
errorMsg = "未知错误";
log.error("【楼长单元长ic_property_management导入】出错:{}", ExceptionUtils.getErrorStackTrace(e));
}
CommunityBuildingManagerImportExcelData.ErrorRow errorRow = ConvertUtils.sourceToTarget(data, CommunityBuildingManagerImportExcelData.ErrorRow.class);
errorRow.setErrorInfo(errorMsg);
errorRows.add(errorRow);
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
// 最后几条达不到阈值,这里必须再调用一次
execPersist();
}
/**
* 执行持久化
*/
private void execPersist() {
try {
if (CollectionUtils.isNotEmpty(excelDataList)) {
communityBuildingManagerService.handleImportExcelData(gridMap,customerId,staffId,agencyId, districtId, streetId,rediPrex,excelDataList,this);
}
} finally {
excelDataList.clear();
}
}
/**
* 获取错误行
*
* @return
*/
public List<CommunityBuildingManagerImportExcelData.ErrorRow> getErrorRows() {
return errorRows;
}
}

116
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/CommunityBuildingManagerImportExcelData.java

@ -0,0 +1,116 @@
package com.epmet.excel.yt;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* @Description
* @Author yzm
* @Date 2023/5/9 16:13
*/
@Data
public class CommunityBuildingManagerImportExcelData {
/**
* 姓名
*/
@ExcelProperty(value = "*姓名")
@Length(max = 50, message = "姓名最多输入50字")
@NotBlank(message = "姓名不能为空")
private String name;
/**
* 联系电话
*/
@ExcelProperty(value = "*联系电话")
@Length(max = 50, message = "联系电话最多输入50字")
@NotBlank(message = "联系电话不能为空")
private String phone;
/**
* 身份证号
*/
@ExcelProperty(value = "*身份证号")
@Length(max = 50, message = "身份证号最多输入50字")
@NotBlank(message = "身份证号不能为空")
private String idCard;
/**
* 类型0楼长1单元长
*/
@ExcelProperty(value = "*类型")
@NotBlank(message = "类型不能为空")
private String typeName;
@ExcelProperty(value = "*所属网格")
@NotBlank(message = "所属网格不能为空")
private String gridName;
@ExcelProperty(value = "*所属小区")
@NotBlank(message = "所属小区不能为空")
private String viliageName;
@ExcelProperty(value = "*楼栋")
@NotBlank(message = "楼栋不能为空")
private String buildingName;
@ExcelProperty(value = "单元")
private String unitName;
@Data
public static class ErrorRow {
/**
* 姓名
*/
@ExcelProperty(value = "*姓名")
@ColumnWidth(20)
private String name;
/**
* 联系电话
*/
@ExcelProperty(value = "*联系电话")
@ColumnWidth(20)
private String phone;
/**
* 身份证号
*/
@ExcelProperty(value = "*身份证号")
@ColumnWidth(25)
private String idCard;
/**
* 类型0楼长1单元长
*/
@ExcelProperty(value = "*类型")
@ColumnWidth(15)
private String typeName;
@ExcelProperty(value = "*所属网格")
@ColumnWidth(30)
private String gridName;
@ExcelProperty(value = "*所属小区")
@ColumnWidth(30)
private String viliageName;
@ExcelProperty(value = "*楼栋")
@ColumnWidth(20)
private String buildingName;
@ExcelProperty(value = "单元")
@ColumnWidth(20)
private String unitName;
@ColumnWidth(60)
@ExcelProperty("错误信息")
private String errorInfo;
}
}

12
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/model/NeighborHoodInfoModel.java

@ -21,6 +21,18 @@ public class NeighborHoodInfoModel {
@ExcelProperty(value = "小区名称")
private String neighborHoodName;
@ExcelProperty(value = "小区/自然村类型")
private String viliageTypeName;
@ExcelProperty(value = "面积")
private String area;
@ExcelProperty(value = "开放类型")
private String openTypeName;
@ExcelProperty(value = "建筑年代")
private String buildYear;
@ExcelProperty(value = "关联物业")
private String propertyName;

14
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CommunityBuildingManagerService.java

@ -40,7 +40,7 @@ public interface CommunityBuildingManagerService extends BaseService<CommunityBu
/**
* 新增楼长/单元长
* todo: 同步到具体的楼栋表
* 同步到具体的楼栋表
*
* @param dto
* @return
@ -49,7 +49,7 @@ public interface CommunityBuildingManagerService extends BaseService<CommunityBu
/**
* 编辑楼长/单元长
* todo: 同步到具体的楼栋
* 同步到具体的楼栋
*
* @param dto
* @return
@ -58,7 +58,7 @@ public interface CommunityBuildingManagerService extends BaseService<CommunityBu
/**
* 批量删除楼长/单元长
* todo: 同时清空楼栋表里的信息
* 同时清空楼栋表里的信息
*
* @param ids
* @return
@ -66,4 +66,12 @@ public interface CommunityBuildingManagerService extends BaseService<CommunityBu
void delete(List<String> ids);
void execAsyncExcelImport(Path fileSavePath, String taskId);
/**
* 楼长单元长功能只能社区级工作人员导入
*
* @param customerId
* @param userId
*/
void checkImportPermission(String customerId, String userId);
}

6
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcBuildingService.java

@ -133,4 +133,10 @@ public interface IcBuildingService extends BaseService<IcBuildingEntity> {
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.IcBuildingDTO>
*/
Result<IcBulidingDetailDTO> getBuildingDetail(String buildingId);
/**
* 更新ic_building的楼长信息那4列building_leader_namebuilding_leader_mobilebuilding_leader_id_cardbuilding_leader_type
* @param updateList
*/
void updateBuildingLeader(List<IcBuildingDTO> updateList);
}

382
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java

@ -1,38 +1,67 @@
package com.epmet.service.impl;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
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.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.dto.result.OptionResultDTO;
import com.epmet.commons.tools.enums.OrgLevelEnum;
import com.epmet.commons.tools.enums.OrgTypeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.EpmetRequestHolder;
import com.epmet.commons.tools.utils.PidUtils;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.commons.tools.utils.*;
import com.epmet.constants.ImportTaskConstants;
import com.epmet.dao.CommunityBuildingManagerDao;
import com.epmet.dao.IcBuildingDao;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.IcBuildingDTO;
import com.epmet.dto.form.ImportTaskCommonFormDTO;
import com.epmet.dto.form.NeighborHoodOptionFormDTO;
import com.epmet.dto.form.yt.CommunityBuildingManagerPageFormDTO;
import com.epmet.dto.result.CommunityBuildingManagerDTO;
import com.epmet.dto.result.UploadImgResultDTO;
import com.epmet.dto.result.yt.CommunityBuildingManagerResultDTO;
import com.epmet.entity.CommunityBuildingManagerEntity;
import com.epmet.service.CommunityBuildingManagerService;
import com.epmet.service.CustomerGridService;
import com.epmet.entity.IcBuildingEntity;
import com.epmet.excel.handler.CommunityBuildingManagerImportListener;
import com.epmet.excel.yt.CommunityBuildingManagerImportExcelData;
import com.epmet.excel.yt.IcPropertyManagementImportExcelData;
import com.epmet.feign.EpmetCommonServiceOpenFeignClient;
import com.epmet.feign.OssFeignClient;
import com.epmet.service.*;
import com.epmet.utils.ImportTaskUtils;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType;
import org.apache.poi.util.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
* 楼长单元长信息表烟台
@ -43,7 +72,17 @@ import java.util.List;
@Slf4j
@Service
public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<CommunityBuildingManagerDao, CommunityBuildingManagerEntity> implements CommunityBuildingManagerService {
@Autowired
private IcBuildingDao icBuildingDao;
@Autowired
private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient;
@Autowired
private OssFeignClient ossFeignClient;
@Autowired
private CustomerGridService customerGridService;
@Autowired
private RedisUtils redisUtils;
/**
* 列表分页查询
*
@ -105,7 +144,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi
/**
* 新增楼长/单元长
* todo: 同步到具体的楼栋表
* 同步到具体的楼栋表
*
* @param addFormDto
* @return
@ -119,6 +158,16 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi
CustomerGridDTO gridDTO = SpringContextUtils.getBean(CustomerGridService.class).get(addFormDto.getGridId());
entity.setOrgIdPath(PidUtils.convertPid2OrgIdPath(gridDTO.getId(), gridDTO.getPids()));
insert(entity);
// 同步更新至ic_building
LambdaUpdateWrapper<IcBuildingEntity> buildingUpdate = new LambdaUpdateWrapper<>();
buildingUpdate.eq(IcBuildingEntity::getId, entity.getBuildingId())
.set(IcBuildingEntity::getBuildingLeaderName, entity.getName())
.set(IcBuildingEntity::getBuildingLeaderMobile, entity.getPhone())
.set(IcBuildingEntity::getBuildingLeaderIdCard, entity.getIdCard())
.set(IcBuildingEntity::getBuildingLeaderType, entity.getType())
.set(IcBuildingEntity::getUpdatedBy, EpmetRequestHolder.getLoginUserId())
.set(IcBuildingEntity::getUpdatedTime, new Date());
icBuildingDao.update(null, buildingUpdate);
}
private void checkUnqiue(String type, String buildingId, String unitId, String id) {
@ -136,7 +185,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi
/**
* 编辑楼长/单元长
* todo: 同步到具体的楼栋
* 同步到具体的楼栋
*
* @param updateFormDto
* @return
@ -149,11 +198,21 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi
CustomerGridDTO gridDTO = SpringContextUtils.getBean(CustomerGridService.class).get(updateFormDto.getGridId());
entity.setOrgIdPath(PidUtils.convertPid2OrgIdPath(gridDTO.getId(), gridDTO.getPids()));
updateById(entity);
// 同步更新至ic_building
LambdaUpdateWrapper<IcBuildingEntity> buildingUpdate = new LambdaUpdateWrapper<>();
buildingUpdate.eq(IcBuildingEntity::getId, updateFormDto.getBuildingId())
.set(IcBuildingEntity::getBuildingLeaderName, updateFormDto.getName())
.set(IcBuildingEntity::getBuildingLeaderMobile, updateFormDto.getPhone())
.set(IcBuildingEntity::getBuildingLeaderIdCard, updateFormDto.getIdCard())
.set(IcBuildingEntity::getBuildingLeaderType, updateFormDto.getType())
.set(IcBuildingEntity::getUpdatedBy, EpmetRequestHolder.getLoginUserId())
.set(IcBuildingEntity::getUpdatedTime, new Date());
icBuildingDao.update(null, buildingUpdate);
}
/**
* 批量删除楼长/单元长
* todo: 同时清空楼栋表里的信息
* 同时清空楼栋表里的信息
*
* @param ids
* @return
@ -161,18 +220,40 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(List<String> ids) {
Date now=new Date();
ids.forEach(id->{
LambdaUpdateWrapper<CommunityBuildingManagerEntity> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(CommunityBuildingManagerEntity::getId, id)
.set(CommunityBuildingManagerEntity::getDelFlag, NumConstant.ONE_STR)
.set(CommunityBuildingManagerEntity::getUpdatedBy, EpmetRequestHolder.getLoginUserId())
.set(CommunityBuildingManagerEntity::getUpdatedTime, now);
baseDao.update(null, updateWrapper);
// todo
Date now = new Date();
ids.forEach(id -> {
CommunityBuildingManagerEntity origin = baseDao.selectById(id);
if (null != origin) {
LambdaUpdateWrapper<CommunityBuildingManagerEntity> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(CommunityBuildingManagerEntity::getId, id)
.set(CommunityBuildingManagerEntity::getDelFlag, NumConstant.ONE_STR)
.set(CommunityBuildingManagerEntity::getUpdatedBy, EpmetRequestHolder.getLoginUserId())
.set(CommunityBuildingManagerEntity::getUpdatedTime, now);
baseDao.update(null, updateWrapper);
if (StringUtils.isNotBlank(origin.getBuildingId())) {
// 清空楼栋表的楼长4列信息
LambdaUpdateWrapper<IcBuildingEntity> buildingUpdate = new LambdaUpdateWrapper<>();
buildingUpdate.eq(IcBuildingEntity::getId, origin.getBuildingId())
.set(IcBuildingEntity::getBuildingLeaderName, StrConstant.EPMETY_STR)
.set(IcBuildingEntity::getBuildingLeaderMobile, StrConstant.EPMETY_STR)
.set(IcBuildingEntity::getBuildingLeaderIdCard, StrConstant.EPMETY_STR)
.set(IcBuildingEntity::getBuildingLeaderType, StrConstant.EPMETY_STR)
.set(IcBuildingEntity::getUpdatedBy, EpmetRequestHolder.getLoginUserId())
.set(IcBuildingEntity::getUpdatedTime, now);
icBuildingDao.update(null, buildingUpdate);
}
}
});
}
@Override
public void checkImportPermission(String customerId, String userId) {
CustomerStaffInfoCacheResult result = CustomerStaffRedis.getStaffInfo(customerId, userId);
CustomerAgencyDTO agencyDTO = SpringContextUtils.getBean(CustomerAgencyService.class).get(result.getAgencyId());
if (!OrgLevelEnum.COMMUNITY.getCode().equals(agencyDTO.getLevel())) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "楼长单元长导入功能只有社区账号才可以正常导入", "请使用社区级账号导入excel");
}
}
/**
* 执行Excel导入
@ -183,8 +264,263 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl<Communi
@Async
@Override
public void execAsyncExcelImport(Path filePath, String importTaskId) {
// todo
return;
String staffId = EpmetRequestHolder.getLoginUserId();
String customerId = EpmetRequestHolder.getLoginUserCustomerId();
// 当前登录用户缓存信息
CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(customerId, staffId);
// 当前登录用户所属组织信息
CustomerAgencyDTO community = SpringContextUtils.getBean(CustomerAgencyService.class).get(staffInfoCacheResult.getAgencyId());
String streetId = community.getPid();
// 社区上级街道信息
CustomerAgencyDTO street = SpringContextUtils.getBean(CustomerAgencyService.class).get(streetId);
String districtId = street.getPid();
//查询当前社区下的网格列表
List<OptionResultDTO> gridList=customerGridService.getGridOption(staffInfoCacheResult.getAgencyId(), "addorupdate");
Map<String, String> gridMap = gridList.stream().collect(Collectors.toMap(OptionResultDTO::getLabel, OptionResultDTO::getValue));
String uuid = IdWorker.getIdStr();
String redisKey = "community_building_manager_import".concat(StrConstant.COLON).concat(uuid);
try {
CommunityBuildingManagerImportListener listener = new CommunityBuildingManagerImportListener(gridMap,customerId,staffId,staffInfoCacheResult.getAgencyId(),districtId,streetId,redisKey,
SpringContextUtils.getBean(CommunityBuildingManagerServiceImpl.class));
EasyExcel.read(filePath.toFile(), CommunityBuildingManagerImportExcelData.class, listener).headRowNumber(1).sheet(0).doRead();
String errorDesFileUrl = null;
List<CommunityBuildingManagerImportExcelData.ErrorRow> errorRows = listener.getErrorRows();
boolean failed = errorRows.size() > 0;
// 合并到一起写入
// errorRows.addAll(otherRows);
// 生成并上传描述文件
OutputStream os = null;
FileItem fileItem = null;
if (errorRows.size() > 0) {
try {
// 文件生成
Path errorDescDir = FileUtils.getAndCreateDirUnderEpmetFilesDir(ImportTaskConstants.COMMUNITY_BUILDING_MANAGER, "import", "error_des");
String fileName = UUID.randomUUID().toString().concat(".xlsx");
fileItem = new DiskFileItemFactory(DiskFileItemFactory.DEFAULT_SIZE_THRESHOLD, errorDescDir.toFile())
.createItem("file", ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName);
os = fileItem.getOutputStream();
EasyExcel.write(os, IcPropertyManagementImportExcelData.ErrorRow.class).sheet("信息列表").doWrite(errorRows);
// 文件上传oss
Result<UploadImgResultDTO> errorDesFileUploadResult = ossFeignClient.uploadImportTaskDescFile(new CommonsMultipartFile(fileItem));
if (errorDesFileUploadResult.success()) {
errorDesFileUrl = errorDesFileUploadResult.getData().getUrl();
}
} finally {
IOUtils.closeQuietly(os);
if (!fileItem.isInMemory()) {
try {
fileItem.delete();
} catch (Exception e) {
log.error("【楼长单元长表community_building_manager】删除错误描述临时文件失败:{}", ExceptionUtils.getErrorStackTrace(e));
}
}
}
}
Result result = ImportTaskUtils.finishImportTask(
importTaskId,
failed ? ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL : ImportTaskConstants.PROCESS_STATUS_FINISHED_SUCCESS,
errorDesFileUrl,
"");
if (!result.success()) {
log.error("【楼长单元长表community_building_manager】finishImportTask失败");
}
} catch (Exception e) {
String errorMsg = ExceptionUtils.getErrorStackTrace(e);
log.error("【楼长单元长表community_building_manager】出错:{}", errorMsg);
ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO();
importFinishTaskForm.setTaskId(importTaskId);
importFinishTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL);
importFinishTaskForm.setOperatorId(staffId);
importFinishTaskForm.setResultDesc("物业管理表导入失败:系统异常,请查看系统日志");
Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm);
if (!result.success()) {
log.error("【楼长单元长表community_building_manager】导入记录状态修改为'完成'失败");
}
} finally {
// 删除临时文件
if (Files.exists(filePath)) {
try {
Files.delete(filePath);
} catch (IOException e) {
e.printStackTrace();
}
}
//删除小区缓存、楼栋缓存、单元缓存
redisUtils.deleteByPrex(redisKey);
}
}
/**
* @param customerId
* @param staffId
* @param agencyId
* @param rediPrex
* @param excelDataList
* @param listener
*/
public void handleImportExcelData(Map<String, String> gridMap,
String customerId,
String staffId,
String agencyId,
String districtId,
String streetId,
String rediPrex,
List<CommunityBuildingManagerDTO> excelDataList,
CommunityBuildingManagerImportListener listener) {
List<CommunityBuildingManagerEntity> insertList = new ArrayList<>();
List<CommunityBuildingManagerEntity> updateList = new ArrayList<>();
List<IcBuildingDTO> buildingUpdateList=new ArrayList<>();
for (CommunityBuildingManagerDTO dto : excelDataList) {
try {
CommunityBuildingManagerEntity entity = ConvertUtils.sourceToTarget(dto, CommunityBuildingManagerEntity.class);
entity.setDistrictId(districtId);
entity.setStreetId(streetId);
// 所属网格
if (MapUtils.isEmpty(gridMap) || !gridMap.containsKey(dto.getGridName()) || StringUtils.isBlank(gridMap.get(dto.getGridName()))) {
CommunityBuildingManagerImportExcelData.ErrorRow errorRow = ConvertUtils.sourceToTarget(dto, CommunityBuildingManagerImportExcelData.ErrorRow.class);
errorRow.setErrorInfo("网格不存在");
listener.getErrorRows().add(errorRow);
continue;
}
String gridId = gridMap.get(dto.getGridName());
entity.setOrgIdPath(CustomerOrgRedis.getOrgIdPath(gridId, OrgTypeEnum.GRID.getCode()));
// 查询当前网格下的小区
// 所属小区
List<OptionResultDTO> viliageList =queryViliageList(customerId,staffId,agencyId,gridId,rediPrex);
Map<String, String> viliageMap = viliageList.stream().collect(Collectors.toMap(OptionResultDTO::getLabel, OptionResultDTO::getValue));
if (MapUtils.isEmpty(viliageMap) || !viliageMap.containsKey(dto.getViliageName()) || StringUtils.isBlank(viliageMap.get(dto.getViliageName()))) {
CommunityBuildingManagerImportExcelData.ErrorRow errorRow = ConvertUtils.sourceToTarget(dto, CommunityBuildingManagerImportExcelData.ErrorRow.class);
errorRow.setErrorInfo("小区不存在");
listener.getErrorRows().add(errorRow);
continue;
}
String viliageId = viliageMap.get(dto.getViliageName());
entity.setViliageId(viliageId);
// 查询当前小区下的楼栋
// 所属楼栋
List<OptionResultDTO> buildingList=queryBuildingList(viliageId,rediPrex);
Map<String, String> buildingMap = buildingList.stream().collect(Collectors.toMap(OptionResultDTO::getLabel, OptionResultDTO::getValue));
if (MapUtils.isEmpty(buildingMap) || !buildingMap.containsKey(dto.getBuildingName()) || StringUtils.isBlank(buildingMap.get(dto.getBuildingName()))) {
CommunityBuildingManagerImportExcelData.ErrorRow errorRow = ConvertUtils.sourceToTarget(dto, CommunityBuildingManagerImportExcelData.ErrorRow.class);
errorRow.setErrorInfo("楼栋不存在");
listener.getErrorRows().add(errorRow);
continue;
}
String buildingId = buildingMap.get(dto.getBuildingName());
entity.setBuildingId(buildingId);
// 所属单元
String unitId = "";
if (StringUtils.isNotBlank(dto.getUnitName())) {
// 查询楼栋下的单元列表
List<OptionResultDTO> unitList=queryUnitList(buildingId,rediPrex);
Map<String, String> unitMap = unitList.stream().collect(Collectors.toMap(OptionResultDTO::getLabel, OptionResultDTO::getValue));
if (MapUtils.isEmpty(unitMap) || !unitMap.containsKey(dto.getUnitName()) || StringUtils.isBlank(unitMap.get(dto.getUnitName()))) {
CommunityBuildingManagerImportExcelData.ErrorRow errorRow = ConvertUtils.sourceToTarget(dto, CommunityBuildingManagerImportExcelData.ErrorRow.class);
errorRow.setErrorInfo("单元不存在");
listener.getErrorRows().add(errorRow);
continue;
}
unitId = unitMap.get(dto.getUnitName());
}
entity.setUnitId(unitId);
LambdaQueryWrapper<CommunityBuildingManagerEntity> countQuery = new LambdaQueryWrapper<>();
countQuery.eq(CommunityBuildingManagerEntity::getType, entity.getType())
.eq(CommunityBuildingManagerEntity::getBuildingId, buildingId)
.eq(StringUtils.isNotBlank(unitId), CommunityBuildingManagerEntity::getUnitId, unitId)
.ne(CommunityBuildingManagerEntity::getId, null);
CommunityBuildingManagerEntity origin = baseDao.selectOne(countQuery);
if (null == origin) {
insertList.add(entity);
} else {
entity.setId(origin.getId());
updateList.add(entity);
}
// 同步更新至ic_building
IcBuildingDTO icBuildingDTO = new IcBuildingDTO();
icBuildingDTO.setId(entity.getBuildingId());
icBuildingDTO.setBuildingLeaderMobile(entity.getPhone());
icBuildingDTO.setBuildingLeaderIdCard(entity.getIdCard());
icBuildingDTO.setBuildingLeaderType(entity.getType());
icBuildingDTO.setBuildingLeaderName(entity.getName());
icBuildingDTO.setUpdatedBy(staffId);
icBuildingDTO.setUpdatedTime(new Date());
buildingUpdateList.add(icBuildingDTO);
} catch (Exception e) {
CommunityBuildingManagerImportExcelData.ErrorRow errorRow = ConvertUtils.sourceToTarget(dto, CommunityBuildingManagerImportExcelData.ErrorRow.class);
errorRow.setErrorInfo("数据处理异常");
listener.getErrorRows().add(errorRow);
}
}
// 同步到ic_building
this.insertBatch(insertList);
this.updateBatchById(updateList);
SpringContextUtils.getBean(IcBuildingService.class).updateBuildingLeader(buildingUpdateList);
}
private List<OptionResultDTO> queryViliageList(String customerId, String staffId, String agencyId, String gridId, String rediPrex) {
String redisKey = rediPrex.concat(StrConstant.COLON).concat("viliage_list").concat(StrConstant.COLON).concat(gridId);
List<OptionResultDTO> viliageList = redisUtils.lrange(redisKey, NumConstant.ZERO, NumConstant.ONE_NEG, OptionResultDTO.class);
if (!CollectionUtils.isEmpty(viliageList)) {
return viliageList;
}
NeighborHoodOptionFormDTO neighborHoodOptionFormDTO = new NeighborHoodOptionFormDTO();
neighborHoodOptionFormDTO.setCustomerId(customerId);
neighborHoodOptionFormDTO.setStaffId(staffId);
neighborHoodOptionFormDTO.setAgencyId(agencyId);
neighborHoodOptionFormDTO.setGridId(gridId);
List<OptionResultDTO> resultList = SpringContextUtils.getBean(IcNeighborHoodService.class).queryNeighborHoodOptions(neighborHoodOptionFormDTO);
// 有效时间1小时
redisUtils.leftPush(redisKey, resultList, RedisUtils.HOUR_ONE_EXPIRE);
return resultList;
}
private List<OptionResultDTO> queryBuildingList(String viliageId, String rediPrex) {
String redisKey = rediPrex.concat(StrConstant.COLON).concat("building_List").concat(StrConstant.COLON).concat(viliageId);
List<OptionResultDTO> buildingList = redisUtils.lrange(redisKey, NumConstant.ZERO, NumConstant.ONE_NEG, OptionResultDTO.class);
if (!CollectionUtils.isEmpty(buildingList)) {
return buildingList;
}
List<OptionResultDTO> resultList = SpringContextUtils.getBean(IcBuildingService.class).getBuildingOptions(viliageId);
// 有效时间1小时
redisUtils.leftPush(redisKey, resultList, RedisUtils.HOUR_ONE_EXPIRE);
return resultList;
}
private List<OptionResultDTO> queryUnitList(String buildingId, String rediPrex) {
String redisKey = rediPrex.concat(StrConstant.COLON).concat("unit_List").concat(StrConstant.COLON).concat(buildingId);
List<OptionResultDTO> unitList = redisUtils.lrange(redisKey, NumConstant.ZERO, NumConstant.ONE_NEG, OptionResultDTO.class);
if (!CollectionUtils.isEmpty(unitList)) {
return unitList;
}
List<OptionResultDTO> resultList = SpringContextUtils.getBean(IcBuildingUnitService.class).getUnitOptions(buildingId);
// 有效时间1小时
redisUtils.leftPush(redisKey, resultList, RedisUtils.HOUR_ONE_EXPIRE);
return resultList;
}

20
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcBuildingServiceImpl.java

@ -19,6 +19,7 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
@ -173,4 +174,23 @@ public class IcBuildingServiceImpl extends BaseServiceImpl<IcBuildingDao, IcBuil
return new Result<IcBulidingDetailDTO>().ok(baseDao.getBuildingDetail(buildingId));
}
/**
* 更新ic_building的楼长信息那4列building_leader_namebuilding_leader_mobilebuilding_leader_id_cardbuilding_leader_type
*
* @param updateList
*/
@Override
public void updateBuildingLeader(List<IcBuildingDTO> updateList) {
updateList.forEach(dto -> {
LambdaUpdateWrapper<IcBuildingEntity> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(IcBuildingEntity::getId, dto.getId())
.set(IcBuildingEntity::getBuildingLeaderName, dto.getBuildingLeaderName())
.set(IcBuildingEntity::getBuildingLeaderMobile, dto.getBuildingLeaderMobile())
.set(IcBuildingEntity::getBuildingLeaderIdCard, dto.getBuildingLeaderIdCard())
.set(IcBuildingEntity::getBuildingLeaderType, dto.getBuildingLeaderType())
.set(IcBuildingEntity::getUpdatedBy, dto.getUpdatedBy())
.set(null != dto.getUpdatedTime(), IcBuildingEntity::getUpdatedTime, dto.getUpdatedTime());
baseDao.update(null, updateWrapper);
});
}
}

21
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java

@ -795,6 +795,27 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao
@Override
@Transactional
public void updateNeighborHood(List<ImportGeneralDTO> needUpdateList) {
needUpdateList.forEach(
needUpdate->{
if (StringUtils.isNotBlank(needUpdate.getOpenTypeName())){
if (needUpdate.getOpenTypeName().equals("自然村")){
needUpdate.setOpenType("2");
}
if (needUpdate.getOpenTypeName().equals("住宅小区")){
needUpdate.setOpenType("1");
}
}
if (StringUtils.isNotBlank(needUpdate.getViliageTypeName())){
if (needUpdate.getViliageTypeName().equals("封闭式")){
needUpdate.setViliageTypeName("1");
}
if (needUpdate.getViliageTypeName().equals("开放式")){
needUpdate.setViliageTypeName("2");
}
}
});
if (CollectionUtils.isNotEmpty(needUpdateList)){
baseDao.updateNeighborHood(needUpdateList);
}

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java

@ -359,7 +359,7 @@ public class PropertyManagementServiceImpl implements PropertyManagementService
importFinishTaskForm.setTaskId(importTaskId);
importFinishTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL);
importFinishTaskForm.setOperatorId(userId);
importFinishTaskForm.setResultDesc("城市管理图层导入失败:系统异常,请查看系统日志");
importFinishTaskForm.setResultDesc("物业管理表导入失败:系统异常,请查看系统日志");
Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm);
if (!result.success()) {

BIN
epmet-module/gov-org/gov-org-server/src/main/resources/excel/neighbor_export.xlsx

Binary file not shown.

BIN
epmet-module/gov-org/gov-org-server/src/main/resources/excel/neighbor_export_0510.xlsx

Binary file not shown.

BIN
epmet-module/gov-org/gov-org-server/src/main/resources/excel/neighbor_template.xlsx

Binary file not shown.

BIN
epmet-module/gov-org/gov-org-server/src/main/resources/excel/neighbor_template_0510.xlsx

Binary file not shown.

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

@ -39,6 +39,26 @@
when id = #{l.neighborHoodId} then #{l.remark}
</foreach>
</trim>
<trim prefix="AREA =(case" suffix="end),">
<foreach collection="list" item="l">
when id = #{l.neighborHoodId} then #{l.area}
</foreach>
</trim>
<trim prefix="BUILD_YEAR =(case" suffix="end),">
<foreach collection="list" item="l">
when id = #{l.neighborHoodId} then #{l.buildYear}
</foreach>
</trim>
<trim prefix="VILIAGE_TYPE =(case" suffix="end),">
<foreach collection="list" item="l">
when id = #{l.neighborHoodId} then #{l.viliageType}
</foreach>
</trim>
<trim prefix="OPEN_TYPE =(case" suffix="end),">
<foreach collection="list" item="l">
when id = #{l.neighborHoodId} then #{l.openType}
</foreach>
</trim>
UPDATED_TIME = NOW()
</trim>
WHERE DEL_FLAG = '0'
@ -169,6 +189,10 @@
</select>
<select id="searchAllNeighborhood" resultType="com.epmet.excel.IcNeighborHoodExcel">
select
a.AREA as area,
a.BUILD_YEAR as buildYear,
if(a.VILIAGE_TYPE =1 ,'住宅小区',if(a.VILIAGE_TYPE = 2,'自然村','')) as viliageTypeName,
if(a.OPEN_TYPE =1 ,'封闭式',if(a.OPEN_TYPE = 2,'开放式','')) as openTypeName,
a.NEIGHBOR_HOOD_NAME as neighborHoodName,
a.ADDRESS as address,
a.REMARK as remark,

Loading…
Cancel
Save