From ad072ea7294ac2e5267102fade9fc82a9461bd7a Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 8 May 2023 13:34:31 +0800 Subject: [PATCH 01/38] =?UTF-8?q?=E7=89=A9=E4=B8=9A=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E5=AF=BC=E5=87=BA+=E4=B8=8B=E8=BD=BD=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/IcPropertyManagementDTO.java | 28 +++++ .../dto/form/IcPropertyManagementFormDTO.java | 13 +- .../PropertyManagementController.java | 114 +++++++++++++++++- .../epmet/dao/IcNeighborHoodPropertyDao.java | 10 +- .../service/PropertyManagementService.java | 17 ++- .../impl/PropertyManagementServiceImpl.java | 32 ++++- .../yantai/ic_property_management_temp.xlsx | Bin 0 -> 10172 bytes .../mapper/IcNeighborHoodPropertyDao.xml | 14 ++- 8 files changed, 205 insertions(+), 23 deletions(-) create mode 100644 epmet-module/gov-org/gov-org-server/src/main/resources/excel/yantai/ic_property_management_temp.xlsx diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java index 171cbeb01c..6190e3d6d1 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java @@ -17,6 +17,10 @@ package com.epmet.dto; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -37,58 +41,82 @@ public class IcPropertyManagementDTO implements Serializable { /** * 物业id */ + @ExcelIgnore private String id; /** * 物业名称 */ + @ExcelProperty(value = "物业名称") + @ColumnWidth(30) private String name; /** * 客户id */ + @ExcelIgnore private String customerId; /** * 烟台需求:物业联系人姓名 */ + @ExcelProperty(value = "物业联系人") + @ColumnWidth(30) private String contactName; /** * 烟台需求:物业联系人电话 */ + @ExcelProperty(value = "联系电话") + @ColumnWidth(30) private String contactMobile; + /** + * 导出时候用 + * 该物业关联的小区 + */ + @JsonIgnore + @ExcelProperty(value = "关联小区") + @ColumnWidth(60) + private String neighborHoodNames; + /** * 删除标识 0未删除、1已删除 */ + @ExcelIgnore private String delFlag; /** * 乐观锁 */ + @ExcelIgnore private Integer revision; /** * 创建人 */ + @ExcelIgnore private String createdBy; /** * 创建时间 */ + @ExcelIgnore private Date createdTime; /** * 更新人 */ + @ExcelIgnore private String updatedBy; /** * 更新时间 */ + @ExcelIgnore private Date updatedTime; /** * 关联的小区数量 */ + @ExcelIgnore private Integer totalNeighborHood; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java index 220a2b7488..938307b9b3 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java @@ -17,17 +17,17 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.dto.form.PageFormDTO; import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import lombok.Data; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; import java.io.Serializable; @Data -public class IcPropertyManagementFormDTO implements Serializable { +public class IcPropertyManagementFormDTO extends PageFormDTO implements Serializable { private static final long serialVersionUID = 1L; @@ -40,8 +40,8 @@ public class IcPropertyManagementFormDTO implements Serializable { public interface UpdateShowGroup extends CustomerClientShowGroup { } - public interface PageGroup extends CustomerClientShowGroup { - } + // public interface PageGroup extends CustomerClientShowGroup { + // } @NotBlank(message = "物业id不能为空", groups = {DeleteGroup.class, UpdateShowGroup.class}) private String id; @@ -66,9 +66,4 @@ public class IcPropertyManagementFormDTO implements Serializable { private String customerId; - @NotNull(message = "pageNo不能为空", groups = PageGroup.class) - private Integer pageNo; - @NotNull(message = "pageSize不能为空", groups = PageGroup.class) - private Integer pageSize; - } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java index d65ba66296..09c1266eec 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java @@ -17,21 +17,44 @@ package com.epmet.controller; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.metadata.style.WriteCellStyle; +import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; 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.Result; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.IcPropertyManagementDTO; import com.epmet.dto.form.IcPropertyManagementFormDTO; import com.epmet.dto.result.IcPropertyManagementResultDTO; import com.epmet.service.PropertyManagementService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.io.IOUtils; +import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.usermodel.VerticalAlignment; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.http.HttpHeaders; +import org.springframework.web.bind.annotation.*; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.io.PrintWriter; +import java.net.URLEncoder; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -43,6 +66,7 @@ import java.util.Map; * @author generator generator@elink-cn.com * @since v1.0.0 2021-10-25 */ +@Slf4j @RestController @RequestMapping("propertymanagement") public class PropertyManagementController { @@ -55,9 +79,8 @@ public class PropertyManagementController { */ @PostMapping("page") public Result> page(@RequestBody IcPropertyManagementFormDTO formDTO){ - ValidatorUtils.validateEntity(formDTO,IcPropertyManagementFormDTO.PageGroup.class); return new Result>().ok(propertyManagementService.page(formDTO.getPageNo(),formDTO.getPageSize(),formDTO.getName(), - formDTO.getContactName(),formDTO.getContactMobile())); + formDTO.getContactName(),formDTO.getContactMobile(),"page-query")); } /** @@ -112,4 +135,83 @@ public class PropertyManagementController { return new Result(); } + /** + * 物业管理-下载导入模板 + * @param response + * @throws IOException + */ + @RequestMapping(value = "download-tem", method = {RequestMethod.GET, RequestMethod.POST}) + public void downloadTemplate(HttpServletResponse response) throws IOException { + response.setCharacterEncoding("UTF-8"); + response.addHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "Content-Disposition"); + //response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.ms-excel"); + response.setHeader(HttpHeaders.CONTENT_TYPE, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + URLEncoder.encode("物业管理导入模版", "UTF-8") + ".xlsx"); + + InputStream is = this.getClass().getClassLoader().getResourceAsStream("excel/ic_property_management_temp.xlsx"); + try { + ServletOutputStream os = response.getOutputStream(); + IOUtils.copy(is, os); + } finally { + if (is != null) { + is.close(); + } + } + } + + + /** + * 物业管理-列表导出 + * + * @param tokenDto + * @param formDTO + * @param response + * @return + * @throws IOException + */ + @PostMapping("export") + public void exportEnterprise(@LoginUser TokenDto tokenDto, @RequestBody IcPropertyManagementFormDTO formDTO, HttpServletResponse response) throws IOException { + formDTO.setCustomerId(tokenDto.getCustomerId()); + ExcelWriter excelWriter = null; + formDTO.setPageNo(NumConstant.ONE); + formDTO.setPageSize(NumConstant.TEN_THOUSAND); + try { + String fileName = "物业管理" + DateUtils.format(new Date()) + ".xlsx"; + WriteCellStyle headWriteCellStyle = new WriteCellStyle(); + headWriteCellStyle.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex()); + WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); + contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle); + FreezeAndFilter writeHandler = new FreezeAndFilter(); + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcPropertyManagementDTO.class) + .registerWriteHandler(horizontalCellStyleStrategy) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) + .registerWriteHandler(writeHandler).build(); + WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); + PageData data = null; + do { + data = propertyManagementService.page(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getName(), formDTO.getContactName(), formDTO.getContactMobile(),"export"); + formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); + excelWriter.write(data.getList(), writeSheet); + } while (CollectionUtils.isNotEmpty(data.getList()) && data.getList().size() == formDTO.getPageSize()); + } catch (EpmetException e) { + response.reset(); + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-type", "application/json; charset=UTF-8"); + PrintWriter printWriter = response.getWriter(); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg()); + printWriter.write(JSON.toJSONString(result)); + printWriter.close(); + } catch (Exception e) { + log.error("物业管理导出异常export exception", e); + } finally { + if (excelWriter != null) { + excelWriter.finish(); + } + } + } + + + + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodPropertyDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodPropertyDao.java index 79a71a11b8..0d27ae9d56 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodPropertyDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodPropertyDao.java @@ -18,9 +18,12 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.entity.IcNeighborHoodPropertyEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 小区物业关系表 * @@ -29,5 +32,10 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface IcNeighborHoodPropertyDao extends BaseDao { - + /** + * 查询物业下的小区名称 + * @param propertyId 物业id + * @return + */ + List getNeighborHoodList(String propertyId); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java index cae9715bd1..949269d16f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java @@ -39,5 +39,20 @@ public interface PropertyManagementService { void update(IcPropertyManagementFormDTO formDTO); void delete(IcPropertyManagementFormDTO formDTO); - PageData page(Integer pageNo, Integer pageSize, String name,String contactName,String contactMobile); + /** + * 物业管理-列表查询 + * @param pageNo + * @param pageSize + * @param name 物业名称 + * @param contactName 物业联系人 + * @param contactMobile 联系电话 + * @param queryType 列表查询:page-query;导出:export + * @return + */ + PageData page(Integer pageNo, + Integer pageSize, + String name, + String contactName, + String contactMobile, + String queryType); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java index e816556e07..a61155a910 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java @@ -2,6 +2,7 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.epmet.commons.tools.constant.StrConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; @@ -9,6 +10,7 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.EpmetRequestHolder; import com.epmet.dao.IcNeighborHoodPropertyDao; import com.epmet.dao.IcPropertyManagementDao; +import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.dto.IcPropertyManagementDTO; import com.epmet.dto.form.IcPropertyManagementFormDTO; import com.epmet.dto.result.IcPropertyManagementResultDTO; @@ -18,6 +20,8 @@ import com.epmet.service.PropertyManagementService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -25,6 +29,7 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; @Slf4j @Service @@ -113,16 +118,33 @@ public class PropertyManagementServiceImpl implements PropertyManagementService /** * 物业管理-列表查询 + * * @param pageNo * @param pageSize - * @param name + * @param name 物业名称 + * @param contactName 物业联系人 + * @param contactMobile 联系电话 + * @param queryType 列表查询:page-query;导出:export * @return */ @Override - public PageData page(Integer pageNo, Integer pageSize, String name,String contactName,String contactMobile) { - PageHelper.startPage(pageNo,pageSize); - List list=icPropertyManagementDao.queryList(EpmetRequestHolder.getLoginUserCustomerId(),name,contactName,contactMobile); + public PageData page(Integer pageNo, Integer pageSize, String name, String contactName, String contactMobile, String queryType) { + PageHelper.startPage(pageNo, pageSize); + List list = icPropertyManagementDao.queryList(EpmetRequestHolder.getLoginUserCustomerId(), name, contactName, contactMobile); PageInfo pageInfo = new PageInfo<>(list); - return new PageData<>(list, pageInfo.getTotal(),pageSize); + // 导出时需要导出关联的小区名称 + if ("export".equals(queryType)) { + pageInfo.getList().forEach(result -> { + List neighborHoodList = icNeighborHoodPropertyDao.getNeighborHoodList(result.getId()); + List neighborHoodNames = neighborHoodList.stream() + .map(IcNeighborHoodDTO::getNeighborHoodName) + .distinct().collect(Collectors.toList()); + result.setNeighborHoodNames(CollectionUtils.isNotEmpty(neighborHoodList) ? StringUtils.join(neighborHoodNames, StrConstant.COMMA_ZH) : StrConstant.EPMETY_STR); + }); + } + return new PageData<>(list, pageInfo.getTotal(), pageSize); } + + + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/yantai/ic_property_management_temp.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/yantai/ic_property_management_temp.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..f0611d26b02afacb2c68d0be54f50c135b9baf1c GIT binary patch literal 10172 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 IC^CqL5o;)^2Cb=%kq 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 literal 0 HcmV?d00001 diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml index 749861cc9a..db8211a0ce 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml @@ -15,5 +15,17 @@ - + \ No newline at end of file From 96a1c8e62806e143fb7a8b4dce0655c6ddadc6a4 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 8 May 2023 14:10:55 +0800 Subject: [PATCH 02/38] =?UTF-8?q?=E7=89=A9=E4=B8=9A=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E7=AE=A1=E7=90=86=E5=B0=8F=E5=8C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/IcPropertyManagementDTO.java | 4 + .../dto/form/IcPropertyManagementFormDTO.java | 7 ++ .../PropertyManagementController.java | 14 ++++ .../service/PropertyManagementService.java | 7 ++ .../impl/PropertyManagementServiceImpl.java | 78 +++++++++++++++---- .../mapper/IcNeighborHoodPropertyDao.xml | 2 +- 6 files changed, 97 insertions(+), 15 deletions(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java index 6190e3d6d1..5a34eab3cb 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java @@ -25,6 +25,7 @@ import lombok.Data; import java.io.Serializable; import java.util.Date; +import java.util.List; /** @@ -79,6 +80,9 @@ public class IcPropertyManagementDTO implements Serializable { @ColumnWidth(60) private String neighborHoodNames; + @ExcelIgnore + List neighborHoodList; + /** * 删除标识 0未删除、1已删除 */ diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java index 938307b9b3..0b3f3ea9b4 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/form/IcPropertyManagementFormDTO.java @@ -24,6 +24,7 @@ import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; import java.io.Serializable; +import java.util.List; @Data @@ -64,6 +65,12 @@ public class IcPropertyManagementFormDTO extends PageFormDTO implements Serializ @Length(max = 30, message = "联系电话不能超过30个字",groups = {AddShowGroup.class, UpdateShowGroup.class}) private String contactMobile; + /** + * 管理小区id + */ + private List neighborHoodIdList; + + private String customerId; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java index 09c1266eec..e7175b3e82 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java @@ -42,6 +42,7 @@ import com.epmet.service.PropertyManagementService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.VerticalAlignment; import org.springframework.beans.factory.annotation.Autowired; @@ -211,6 +212,19 @@ public class PropertyManagementController { } } + /** + * 获取物业详情 + * + * @param id + * @return + */ + @PostMapping("detail/{id}") + public Result getDetail(@PathVariable("id") String id) { + if (StringUtils.isBlank(id)) { + return new Result<>(); + } + return new Result().ok(propertyManagementService.getDetail(id)); + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java index 949269d16f..4e6e1a71e4 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java @@ -55,4 +55,11 @@ public interface PropertyManagementService { String contactName, String contactMobile, String queryType); + + /** + * 查看物业详情 + * @param id + * @return + */ + IcPropertyManagementDTO getDetail(String id); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java index a61155a910..324f9e3fff 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java @@ -35,6 +35,9 @@ import java.util.stream.Collectors; @Service public class PropertyManagementServiceImpl implements PropertyManagementService { + /** + * 物业表 + */ @Resource private IcPropertyManagementDao icPropertyManagementDao; @Resource @@ -62,43 +65,68 @@ public class PropertyManagementServiceImpl implements PropertyManagementService /** * 新增物业 * 名称客户下唯一 + * * @param formDTO * @return */ @Override @Transactional(rollbackFor = Exception.class) public String add(IcPropertyManagementFormDTO formDTO) { - //物业名字平台内唯一 - //如果输入的物业名字已经存在,直接返回物业id + // 物业名字平台内唯一 + // 如果输入的物业名字已经存在,直接返回物业id formDTO.setName(formDTO.getName().trim()); - IcPropertyManagementEntity entity = icPropertyManagementDao.selectByName(formDTO.getCustomerId(),formDTO.getName(),null); + IcPropertyManagementEntity entity = icPropertyManagementDao.selectByName(formDTO.getCustomerId(), formDTO.getName(), null); if (null != entity) { - return entity.getId(); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "物业名称已存在", "物业名称已存在"); } IcPropertyManagementEntity icPropertyManagementEntity = ConvertUtils.sourceToTarget(formDTO, IcPropertyManagementEntity.class); icPropertyManagementDao.insert(icPropertyManagementEntity); + if (CollectionUtils.isNotEmpty(formDTO.getNeighborHoodIdList())) { + formDTO.getNeighborHoodIdList().forEach(neighborHoodId -> { + // 插入小区物业关系表 + IcNeighborHoodPropertyEntity neighborHoodPropertyEntity = new IcNeighborHoodPropertyEntity(); + neighborHoodPropertyEntity.setPropertyId(icPropertyManagementEntity.getId()); + neighborHoodPropertyEntity.setNeighborHoodId(neighborHoodId); + icNeighborHoodPropertyDao.insert(neighborHoodPropertyEntity); + }); + } return icPropertyManagementEntity.getId(); } /** * 物业管理-修改 + * * @param formDTO */ @Override @Transactional(rollbackFor = Exception.class) public void update(IcPropertyManagementFormDTO formDTO) { - IcPropertyManagementEntity entity = icPropertyManagementDao.selectByName(EpmetRequestHolder.getLoginUserCustomerId(),formDTO.getName(),formDTO.getId()); + IcPropertyManagementEntity entity = icPropertyManagementDao.selectByName(EpmetRequestHolder.getLoginUserCustomerId(), formDTO.getName(), formDTO.getId()); if (null != entity) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"物业名称已存在","物业名称已存在"); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "物业名称已存在", "物业名称已存在"); + } + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(IcPropertyManagementEntity::getId, formDTO.getId()) + .set(IcPropertyManagementEntity::getName, formDTO.getName()) + .set(IcPropertyManagementEntity::getContactName, formDTO.getContactName()) + .set(IcPropertyManagementEntity::getContactMobile, formDTO.getContactMobile()) + .set(IcPropertyManagementEntity::getUpdatedTime, new Date()) + .set(IcPropertyManagementEntity::getUpdatedBy, EpmetRequestHolder.getLoginUserId()); + icPropertyManagementDao.update(null, updateWrapper); + if (CollectionUtils.isNotEmpty(formDTO.getNeighborHoodIdList())) { + formDTO.getNeighborHoodIdList().forEach(neighborHoodId -> { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId, formDTO.getId()) + .eq(IcNeighborHoodPropertyEntity::getNeighborHoodId, neighborHoodId); + if (icNeighborHoodPropertyDao.selectCount(queryWrapper) < 1) { + // 插入小区物业关系表 + IcNeighborHoodPropertyEntity neighborHoodPropertyEntity = new IcNeighborHoodPropertyEntity(); + neighborHoodPropertyEntity.setPropertyId(formDTO.getId()); + neighborHoodPropertyEntity.setNeighborHoodId(neighborHoodId); + icNeighborHoodPropertyDao.insert(neighborHoodPropertyEntity); + } + }); } - LambdaUpdateWrapper updateWrapper=new LambdaUpdateWrapper<>(); - updateWrapper.eq(IcPropertyManagementEntity::getId,formDTO.getId()) - .set(IcPropertyManagementEntity::getName,formDTO.getName()) - .set(IcPropertyManagementEntity::getContactName,formDTO.getContactName()) - .set(IcPropertyManagementEntity::getContactMobile,formDTO.getContactMobile()) - .set(IcPropertyManagementEntity::getUpdatedTime,new Date()) - .set(IcPropertyManagementEntity::getUpdatedBy,EpmetRequestHolder.getLoginUserId()); - icPropertyManagementDao.update(null,updateWrapper); } /** @@ -140,11 +168,33 @@ public class PropertyManagementServiceImpl implements PropertyManagementService .map(IcNeighborHoodDTO::getNeighborHoodName) .distinct().collect(Collectors.toList()); result.setNeighborHoodNames(CollectionUtils.isNotEmpty(neighborHoodList) ? StringUtils.join(neighborHoodNames, StrConstant.COMMA_ZH) : StrConstant.EPMETY_STR); + result.setNeighborHoodList(neighborHoodList); }); } return new PageData<>(list, pageInfo.getTotal(), pageSize); } + /** + * 查看物业详情 + * + * @param id + * @return + */ + @Override + public IcPropertyManagementDTO getDetail(String id) { + IcPropertyManagementEntity icPropertyManagementEntity = icPropertyManagementDao.selectById(id); + if (null == icPropertyManagementEntity) { + return null; + } + IcPropertyManagementDTO resultDto = ConvertUtils.sourceToTarget(icPropertyManagementEntity, IcPropertyManagementDTO.class); + List neighborHoodList = icNeighborHoodPropertyDao.getNeighborHoodList(id); + List neighborHoodNames = neighborHoodList.stream() + .map(IcNeighborHoodDTO::getNeighborHoodName) + .distinct().collect(Collectors.toList()); + resultDto.setNeighborHoodNames(CollectionUtils.isNotEmpty(neighborHoodList) ? StringUtils.join(neighborHoodNames, StrConstant.COMMA_ZH) : StrConstant.EPMETY_STR); + resultDto.setNeighborHoodList(neighborHoodList); + return resultDto; + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml index db8211a0ce..12a20f286c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml @@ -21,7 +21,7 @@ h.NEIGHBOR_HOOD_NAME FROM ic_neighbor_hood_property p - INNER JOIN ic_neighbor_hood h ON ( p.NEIGHBOR_HOOD_ID = h.ID ) + INNER JOIN ic_neighbor_hood h ON ( p.NEIGHBOR_HOOD_ID = h.ID ) WHERE p.PROPERTY_ID = #{propertyId} AND p.DEL_FLAG = '0' From 546954b098392f84b51eb84d3173c274ca9562dc Mon Sep 17 00:00:00 2001 From: lichao <326994889@qq.com> Date: Mon, 8 May 2023 14:18:44 +0800 Subject: [PATCH 03/38] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/controller/StaffController.java | 38 ++++++++++++++++++ .../excel/customer_staff_import_template.xlsx | Bin 0 -> 9722 bytes 2 files changed, 38 insertions(+) create mode 100644 epmet-module/gov-org/gov-org-server/src/main/resources/excel/customer_staff_import_template.xlsx diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffController.java index bcc8e2f55e..d424f60202 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/StaffController.java @@ -8,16 +8,23 @@ import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.enums.RequirePermissionEnum; 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.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.*; import com.epmet.dto.result.*; import com.epmet.service.StaffService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.InputStream; +import java.net.URLEncoder; import java.util.List; /** @@ -25,6 +32,7 @@ import java.util.List; * @author zhaoqifeng * @date 2020/4/23 17:59 */ +@Slf4j @RestController @RequestMapping("staff") public class StaffController { @@ -251,4 +259,34 @@ public class StaffController { return new Result>().ok(staffService.staffOrgList(tokenDto)); } + /** + * 下载工作人员导入excel模板 + * + * @return + */ + @PostMapping("import/download-template") + public void downloadIcResiDownloadTemplate(HttpServletResponse response) { + InputStream is = null; + ServletOutputStream os = null; + try { + os = response.getOutputStream(); + + is = this.getClass().getClassLoader().getResourceAsStream("excel/customer_staff_import_template.xlsx"); + + response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); + response.setHeader("content-Type", "application/vnd.ms-excel"); + response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode("工作人员导入模板.xlsx", "UTF-8")); + + IOUtils.copy(is, os); + } catch (Exception e) { + String errorStackTrace = ExceptionUtils.getErrorStackTrace(e); + log.error("下载工作人员导入模板失败:{}", errorStackTrace); + + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "下载工作人员导入模板失败"); + } finally { + org.apache.poi.util.IOUtils.closeQuietly(is); + org.apache.poi.util.IOUtils.closeQuietly(os); + } + } + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/excel/customer_staff_import_template.xlsx b/epmet-module/gov-org/gov-org-server/src/main/resources/excel/customer_staff_import_template.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..df7f4126472dc1f67d5a60445662f9fa0475343e GIT binary patch literal 9722 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 m&iwbjhBw|{R_p&a-oLsW Date: Mon, 8 May 2023 14:38:52 +0800 Subject: [PATCH 04/38] =?UTF-8?q?=E7=89=A9=E4=B8=9A=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/constants/ImportTaskConstants.java | 5 + .../PropertyManagementController.java | 65 ++++++++- .../IcPropertyManagementImportListener.java | 120 +++++++++++++++++ .../IcPropertyManagementImportExcelData.java | 58 ++++++++ .../service/IcPropertyManagementService.java | 9 ++ .../service/PropertyManagementService.java | 8 ++ .../impl/IcPropertyManagementServiceImpl.java | 7 + .../impl/PropertyManagementServiceImpl.java | 126 +++++++++++++++++- 8 files changed, 390 insertions(+), 8 deletions(-) create mode 100644 epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcPropertyManagementImportListener.java create mode 100644 epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java index 204845c1fb..f7b664de4b 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java @@ -83,4 +83,9 @@ public interface ImportTaskConstants { * 未做核酸比对 */ String IC_NAT_COMPARE_RECORD="ic_nat_compare_record"; + + /** + * 物业表:ic_property_management + */ + String IC_PROPERTY_MANAGEMENT="ic_property_management"; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java index e7175b3e82..e342791fb2 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java @@ -26,19 +26,26 @@ import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy import com.alibaba.fastjson.JSON; import com.epmet.commons.tools.annotation.LoginUser; 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.IcPropertyManagementDTO; import com.epmet.dto.form.IcPropertyManagementFormDTO; import com.epmet.dto.result.IcPropertyManagementResultDTO; +import com.epmet.dto.result.ImportTaskCommonResultDTO; import com.epmet.service.PropertyManagementService; +import com.epmet.utils.ImportTaskUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; @@ -48,17 +55,17 @@ import org.apache.poi.ss.usermodel.VerticalAlignment; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; +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.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.nio.file.Path; +import java.util.*; /** @@ -70,7 +77,7 @@ import java.util.Map; @Slf4j @RestController @RequestMapping("propertymanagement") -public class PropertyManagementController { +public class PropertyManagementController implements ResultDataResolver { @Autowired private PropertyManagementService propertyManagementService; @@ -226,6 +233,54 @@ public class PropertyManagementController { return new Result().ok(propertyManagementService.getDetail(id)); } + /** + * 导入excel + * + * @return + */ + @PostMapping("import") + public Result importExcel(MultipartFile file) { + // 1.暂存文件 + String originalFilename = file.getOriginalFilename(); + String extName = originalFilename.substring(originalFilename.lastIndexOf(".")); + + Path fileSavePath; + try { + Path importPath = FileUtils.getAndCreateDirUnderEpmetFilesDir(ImportTaskConstants.IC_PROPERTY_MANAGEMENT, "import"); + fileSavePath = importPath.resolve(UUID.randomUUID().toString().concat(extName)); + } catch (IOException e) { + String errorMsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【物业管理导入】创建临时存储文件失败:{}", errorMsg); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "文件上传失败", "文件上传失败"); + } + + InputStream is = null; + FileOutputStream os = null; + + try { + is = file.getInputStream(); + os = new FileOutputStream(fileSavePath.toString()); + IOUtils.copy(is, os); + } catch (Exception e) { + log.error(ImportTaskConstants.IC_PROPERTY_MANAGEMENT + "表 importExcel exception", e); + } finally { + org.apache.poi.util.IOUtils.closeQuietly(is); + org.apache.poi.util.IOUtils.closeQuietly(os); + } + + // 2.生成导入任务记录 + ImportTaskCommonResultDTO rstData = getResultDataOrThrowsException( + ImportTaskUtils.createImportTask(originalFilename, ImportTaskConstants.IC_PROPERTY_MANAGEMENT), + ServiceConstant.EPMET_COMMON_SERVICE, + EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), + "物业管理导入excel错误", + "物业管理导入excel错误"); + + // 3.执行导入 + propertyManagementService.execAsyncExcelImport(fileSavePath, rstData.getTaskId()); + return new Result(); + } + } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcPropertyManagementImportListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcPropertyManagementImportListener.java new file mode 100644 index 0000000000..c591d54331 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcPropertyManagementImportListener.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.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.entity.IcPropertyManagementEntity; +import com.epmet.excel.yt.IcPropertyManagementImportExcelData; +import com.epmet.service.impl.IcPropertyManagementServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Description + * @Author yzm + * @Date 2023/5/8 14:23 + */ +@Slf4j +public class IcPropertyManagementImportListener implements ReadListener { + + // 最大条数阈值 + public static final int MAX_THRESHOLD = 200; + private String currentCustomerId; + private IcPropertyManagementServiceImpl propertyManagementService; + // 错误项列表 + private List errorRows = new ArrayList<>(); + // 要插入的数据 + private List insertDatas = new ArrayList<>(); + private List updateDatas = new ArrayList<>(); + + public IcPropertyManagementImportListener(String customerId, IcPropertyManagementServiceImpl propertyManagementService) { + this.currentCustomerId = customerId; + this.propertyManagementService = propertyManagementService; + } + + @Override + public void invoke(IcPropertyManagementImportExcelData data, AnalysisContext analysisContext) { + try { + // log.warn("有数据吗?"+JSON.toJSONString(data)); + // 不能为空先校验数据 + ValidatorUtils.validateEntity(data); + // 去除空格 + ObjectUtil.objectToTrim(data); + //物业名称唯一 + IcPropertyManagementEntity origin=propertyManagementService.getByName(currentCustomerId, data.getName()); + + IcPropertyManagementEntity propertyManagementEntity = ConvertUtils.sourceToTarget(data, IcPropertyManagementEntity.class); + propertyManagementEntity.setCustomerId(currentCustomerId); + if (null != origin) { + origin.setContactMobile(data.getContactMobile()); + origin.setContactName(data.getContactName()); + insertDatas.add(origin); + } else { + insertDatas.add(propertyManagementEntity); + } + + if (insertDatas.size() == MAX_THRESHOLD) { + execPersist(); + } + if (updateDatas.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).getInternalMsg(); + } else { + errorMsg = "未知错误"; + log.error("【物业管理表ic_property_management导入】出错:{}", ExceptionUtils.getErrorStackTrace(e)); + } + IcPropertyManagementImportExcelData.ErrorRow errorRow = ConvertUtils.sourceToTarget(data, IcPropertyManagementImportExcelData.ErrorRow.class); + errorRow.setErrorInfo(errorMsg); + errorRows.add(errorRow); + } + + } + + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + // 最后几条达不到阈值,这里必须再调用一次 + execPersist(); + } + + /** + * 执行持久化 + */ + private void execPersist() { + try { + if (CollectionUtils.isNotEmpty(insertDatas)) { + propertyManagementService.insertBatch(insertDatas); + } + + if (CollectionUtils.isNotEmpty(updateDatas)) { + propertyManagementService.updateBatchById(updateDatas); + } + } finally { + insertDatas.clear(); + updateDatas.clear(); + } + } + + /** + * 获取错误行 + * + * @return + */ + public List getErrorRows() { + return errorRows; + } +} + diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java new file mode 100644 index 0000000000..e172260c16 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java @@ -0,0 +1,58 @@ +package com.epmet.excel.yt; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import lombok.Data; + +/** + * @Description + * @Author yzm + * @Date 2023/5/8 14:24 + */ +@Data +public class IcPropertyManagementImportExcelData { + /** + * 物业名称 + */ + @ExcelProperty(value = "物业名称") + private String name; + + /** + * 烟台需求:物业联系人姓名 + */ + @ExcelProperty(value = "物业联系人") + private String contactName; + + /** + * 烟台需求:物业联系人电话 + */ + @ExcelProperty(value = "联系电话") + private String contactMobile; + + @Data + public static class ErrorRow { + /** + * 物业名称 + */ + @ExcelProperty(value = "物业名称") + private String name; + + /** + * 烟台需求:物业联系人姓名 + */ + @ExcelProperty(value = "物业联系人") + private String contactName; + + /** + * 烟台需求:物业联系人电话 + */ + @ExcelProperty(value = "联系电话") + private String contactMobile; + + + @ColumnWidth(60) + @ExcelProperty("错误信息") + private String errorInfo; + } +} + diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcPropertyManagementService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcPropertyManagementService.java index bc808af034..83ea49e041 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcPropertyManagementService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcPropertyManagementService.java @@ -92,4 +92,13 @@ public interface IcPropertyManagementService extends BaseService wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(IcPropertyManagementEntity::getCustomerId,customerId).eq(IcPropertyManagementEntity::getName,name); + return baseDao.selectOne(wrapper); + } } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java index 324f9e3fff..557692cc65 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java @@ -1,34 +1,56 @@ 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.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; 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.utils.ConvertUtils; -import com.epmet.commons.tools.utils.EpmetRequestHolder; +import com.epmet.commons.tools.utils.*; +import com.epmet.constants.ImportTaskConstants; import com.epmet.dao.IcNeighborHoodPropertyDao; import com.epmet.dao.IcPropertyManagementDao; import com.epmet.dto.IcNeighborHoodDTO; import com.epmet.dto.IcPropertyManagementDTO; import com.epmet.dto.form.IcPropertyManagementFormDTO; +import com.epmet.dto.form.ImportTaskCommonFormDTO; import com.epmet.dto.result.IcPropertyManagementResultDTO; +import com.epmet.dto.result.UploadImgResultDTO; import com.epmet.entity.IcNeighborHoodPropertyEntity; import com.epmet.entity.IcPropertyManagementEntity; +import com.epmet.excel.handler.IcPropertyManagementImportListener; +import com.epmet.excel.yt.IcPropertyManagementImportExcelData; +import com.epmet.feign.EpmetCommonServiceOpenFeignClient; +import com.epmet.feign.OssFeignClient; import com.epmet.service.PropertyManagementService; +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.CollectionUtils; +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.web.multipart.commons.CommonsMultipartFile; import javax.annotation.Resource; +import java.io.IOException; +import java.io.OutputStream; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.UUID; import java.util.stream.Collectors; @Slf4j @@ -42,6 +64,10 @@ public class PropertyManagementServiceImpl implements PropertyManagementService private IcPropertyManagementDao icPropertyManagementDao; @Resource private IcNeighborHoodPropertyDao icNeighborHoodPropertyDao; + @Autowired + private EpmetCommonServiceOpenFeignClient commonServiceOpenFeignClient; + @Autowired + private OssFeignClient ossFeignClient; /** * 查询当前客户下的物业 @@ -118,7 +144,7 @@ public class PropertyManagementServiceImpl implements PropertyManagementService LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId, formDTO.getId()) .eq(IcNeighborHoodPropertyEntity::getNeighborHoodId, neighborHoodId); - if (icNeighborHoodPropertyDao.selectCount(queryWrapper) < 1) { + if (icNeighborHoodPropertyDao.selectCount(queryWrapper) < NumConstant.ONE) { // 插入小区物业关系表 IcNeighborHoodPropertyEntity neighborHoodPropertyEntity = new IcNeighborHoodPropertyEntity(); neighborHoodPropertyEntity.setPropertyId(formDTO.getId()); @@ -196,5 +222,99 @@ public class PropertyManagementServiceImpl implements PropertyManagementService return resultDto; } + /** + * 执行Excel导入 + * + * @param filePath + * @param importTaskId + */ + @Async + @Override + public void execAsyncExcelImport(Path filePath, String importTaskId) { + String userId = null; + try { + userId = EpmetRequestHolder.getLoginUserId(); + String customerId = EpmetRequestHolder.getLoginUserCustomerId(); + + IcPropertyManagementImportListener listener = new IcPropertyManagementImportListener(customerId, SpringContextUtils.getBean(IcPropertyManagementServiceImpl.class)); + + EasyExcel.read(filePath.toFile(), IcPropertyManagementImportExcelData.class, listener).headRowNumber(1).sheet(0).doRead(); + + String errorDesFileUrl = null; + + List 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.IC_PROPERTY_MANAGEMENT, "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 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("【物业管理表ic_property_management】删除错误描述临时文件失败:{}", 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("【物业管理表ic_property_management】finishImportTask失败"); + } + } catch (Exception e) { + String errorMsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【物业管理表ic_property_management】出错:{}", errorMsg); + + ImportTaskCommonFormDTO importFinishTaskForm = new ImportTaskCommonFormDTO(); + importFinishTaskForm.setTaskId(importTaskId); + importFinishTaskForm.setProcessStatus(ImportTaskConstants.PROCESS_STATUS_FINISHED_FAIL); + importFinishTaskForm.setOperatorId(userId); + importFinishTaskForm.setResultDesc("城市管理图层导入失败:系统异常,请查看系统日志"); + + Result result = commonServiceOpenFeignClient.finishImportTask(importFinishTaskForm); + if (!result.success()) { + log.error("【物业管理表ic_property_management】导入记录状态修改为'完成'失败"); + } + } finally { + // 删除临时文件 + if (Files.exists(filePath)) { + try { + Files.delete(filePath); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } + } From 6cf3547b0134fe54b28a9823dbd963c956ff3424 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 8 May 2023 14:54:11 +0800 Subject: [PATCH 05/38] =?UTF-8?q?=E7=89=A9=E4=B8=9A=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E6=9F=A5=E7=9C=8B=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/epmet/dto/IcPropertyManagementDTO.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java index 5a34eab3cb..490cc35f90 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/IcPropertyManagementDTO.java @@ -20,7 +20,6 @@ package com.epmet.dto; import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; -import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import java.io.Serializable; @@ -75,7 +74,6 @@ public class IcPropertyManagementDTO implements Serializable { * 导出时候用 * 该物业关联的小区 */ - @JsonIgnore @ExcelProperty(value = "关联小区") @ColumnWidth(60) private String neighborHoodNames; From f5bbb9314fdd8775bf784262c63b49d7d210084b Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 8 May 2023 14:56:13 +0800 Subject: [PATCH 06/38] =?UTF-8?q?=E7=89=A9=E4=B8=9A=E7=AE=A1=E7=90=86?= =?UTF-8?q?=EF=BC=8C=E7=AE=A1=E7=90=86=E5=B0=8F=E5=8C=BA=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/IcPropertyManagementDao.xml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPropertyManagementDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPropertyManagementDao.xml index 2035e53020..71046c4bb0 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPropertyManagementDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcPropertyManagementDao.xml @@ -72,7 +72,12 @@ SELECT p.NEIGHBOR_HOOD_ID, @@ -24,7 +25,7 @@ INNER JOIN ic_neighbor_hood h ON ( p.NEIGHBOR_HOOD_ID = h.ID ) WHERE p.PROPERTY_ID = #{propertyId} - AND (h.AGENCY_ID =#{agencyId} or h.AGENCY_PIDS like concat('%',#{agencyId},'%') ) + AND (h.AGENCY_ID = #{agencyId} or h.AGENCY_PIDS like concat('%',#{agencyId},'%') ) AND p.DEL_FLAG = '0' AND h.DEL_FLAG = '0' order by h.CREATED_TIME asc From 92cfd3d0c95964eea210fe9b0aaa92f750b16efa Mon Sep 17 00:00:00 2001 From: lichao <326994889@qq.com> Date: Mon, 8 May 2023 16:20:01 +0800 Subject: [PATCH 10/38] =?UTF-8?q?=E5=B0=8F=E5=8C=BA=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/epmet/dto/result/IcNeighborHoodResultDTO.java | 8 ++++++++ .../src/main/resources/mapper/IcNeighborHoodDao.xml | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcNeighborHoodResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcNeighborHoodResultDTO.java index d775552bbf..112ace5fbf 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcNeighborHoodResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/IcNeighborHoodResultDTO.java @@ -28,4 +28,12 @@ public class IcNeighborHoodResultDTO extends PageFormDTO { private String propertyId; private String agencyName; private String longitude; + + private String viliageTypeName; + + private String area; + + private String openTypeName; + + private String buildYear; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml index 326940bdd9..b61da5e7ab 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml @@ -130,7 +130,11 @@ d.PROPERTY_ID as propertyId , a.LOCATION as location, a.LONGITUDE as longitude, - a.LATITUDE as latitude + a.LATITUDE as latitude, + a.AREA as area, + a.BUILD_YEAR as buildYear, + if(a.VILIAGE_TYPE = 1,'住宅小区',if(a.VILIAGE_TYPE = 1,'自然村','')) as viliageTypeName, + if(a.OPEN_TYPE = 1,'封闭式',if(a.OPEN_TYPE = 1,'开放式','')) as openTypeName from ic_neighbor_hood a left join customer_agency b on a.AGENCY_ID = b.ID and b.DEL_FLAG='0' From ac12e2d18903fc100314a8851ff6c2f7846a22cb Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Mon, 8 May 2023 16:39:15 +0800 Subject: [PATCH 11/38] =?UTF-8?q?=E7=89=A9=E4=B8=9A=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=B0=8F=E5=8C=BAid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IcNeighborHoodController.java | 15 +++++++++++++ .../java/com/epmet/dao/IcNeighborHoodDao.java | 13 +++++++++++ .../epmet/service/IcNeighborHoodService.java | 7 ++++++ .../impl/IcNeighborHoodServiceImpl.java | 21 +++++++++++++----- .../resources/mapper/IcNeighborHoodDao.xml | 22 +++++++++++++++++++ .../mapper/IcNeighborHoodPropertyDao.xml | 2 +- 6 files changed, 74 insertions(+), 6 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcNeighborHoodController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcNeighborHoodController.java index 1faa0d9221..2e39b1f211 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcNeighborHoodController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/IcNeighborHoodController.java @@ -174,6 +174,21 @@ public class IcNeighborHoodController { return new Result>().ok(list); } + /** + * 入参:gridId、agencyId + * 返回当前组织及下级下的所有小区 + * @param tokenDto + * @param formDTO + * @return + */ + @PostMapping("neighborhood-options-yantai") + public Result> queryNeighborHoodOptionsYanTai(@LoginUser TokenDto tokenDto, @RequestBody NeighborHoodOptionFormDTO formDTO) { + formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); + List list=icNeighborHoodService.queryNeighborHoodOptionsYanTai(formDTO); + return new Result>().ok(list); + } + /** * 获取用户组织下小区列表 * diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodDao.java index 2fd4f25eee..b97fdf0f03 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcNeighborHoodDao.java @@ -224,4 +224,17 @@ public interface IcNeighborHoodDao extends BaseDao { IcNeighborHoodEntity getNeighborHoodInfoByName(CheckHouseInfoFormDTO formDTO); List queryNeighborHoodOptions(NeighborHoodOptionFormDTO formDTO); + + /** + * label: xxx网格-xxx小区 + * @param customerId + * @param agencyId + * @param gridId + * @param neighborHoodName + * @return + */ + List queryNeighborHoodOptionsYanTai(@Param("customerId") String customerId, + @Param("agencyId") String agencyId, + @Param("gridId") String gridId, + @Param("neighborHoodName") String neighborHoodName); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java index e5766ce0d3..5313886414 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/IcNeighborHoodService.java @@ -203,4 +203,11 @@ public interface IcNeighborHoodService extends BaseService * @return */ List queryNeighborHoodOptions(NeighborHoodOptionFormDTO formDTO); + + /** + * 小区下拉框,小区名:xxx网格-xxx小区 + * @param formDTO + * @return + */ + List queryNeighborHoodOptionsYanTai(NeighborHoodOptionFormDTO formDTO); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java index 3b6a79691c..d2f2dc4776 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/IcNeighborHoodServiceImpl.java @@ -856,9 +856,20 @@ public class IcNeighborHoodServiceImpl extends BaseServiceImpl queryNeighborHoodOptionsYanTai(NeighborHoodOptionFormDTO formDTO) { + if (StringUtils.isBlank(formDTO.getGridId()) && StringUtils.isBlank(formDTO.getAgencyId())) { + // 默认查询当前工作人员所属组织及下级的 + CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), formDTO.getStaffId()); + formDTO.setAgencyId(staffInfoCacheResult.getAgencyId()); + } + List list = baseDao.queryNeighborHoodOptionsYanTai(formDTO.getCustomerId(),formDTO.getAgencyId(),formDTO.getGridId(),formDTO.getNeighborHoodName()); + return list; + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml index 326940bdd9..0a4f7db95b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodDao.xml @@ -695,4 +695,26 @@ ORDER BY h.NEIGHBOR_HOOD_NAME ASC + + diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml index 4ea353272f..9e5f9b0bf9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/mapper/IcNeighborHoodPropertyDao.xml @@ -18,7 +18,7 @@ SELECT m.*, + ( + case when m.type='0' then '楼长' + when m.type='1' then '单元长' + else '-' + end + )as typeName, d.ORGANIZATION_NAME AS districtName, s.ORGANIZATION_NAME AS streetName, c.ORGANIZATION_NAME AS communityName, From a01720c755d3eae1a24dfbcbbfc3550bfffe854c Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 10:26:07 +0800 Subject: [PATCH 21/38] =?UTF-8?q?=E6=A5=BC=E9=95=BF=E5=8D=95=E5=85=83?= =?UTF-8?q?=E9=95=BF=E8=BF=99=EF=BC=8C=E6=96=B0=E5=A2=9E=E6=88=96=E8=80=85?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=97=B6=EF=BC=8C=E4=B8=8D=E8=AE=BA=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=98=AF=E5=95=A5=EF=BC=8C=E5=8D=95=E5=85=83=E9=83=BD?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E4=B8=8D=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CommunityBuildingManagerController.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java index 771bcb1006..2240faba43 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java @@ -25,7 +25,6 @@ import com.epmet.dto.result.yt.CommunityBuildingManagerResultDTO; import com.epmet.service.CommunityBuildingManagerService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.usermodel.VerticalAlignment; import org.springframework.beans.factory.annotation.Autowired; @@ -92,10 +91,10 @@ public class CommunityBuildingManagerController { public Result save(@LoginUser TokenDto tokenDto,@RequestBody CommunityBuildingManagerDTO dto){ dto.setCustomerId(tokenDto.getCustomerId()); ValidatorUtils.validateEntity(dto, CommunityBuildingManagerDTO.AddShowGroup.class); - //类型:0楼长;1单元长 + /* //类型:0楼长;1单元长 if("1".equals(dto.getType())&& StringUtils.isBlank(dto.getUnitId())){ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"单元长必须选择所属单元","单元长必须选择所属单元"); - } + }*/ communityBuildingManagerService.save(dto); return new Result(); } @@ -110,10 +109,10 @@ public class CommunityBuildingManagerController { @PostMapping("update") public Result update(@RequestBody CommunityBuildingManagerDTO dto){ ValidatorUtils.validateEntity(dto, CommunityBuildingManagerDTO.UpdateShowGroup.class); - //类型:0楼长;1单元长 + /* //类型:0楼长;1单元长 if("1".equals(dto.getType())&& StringUtils.isBlank(dto.getUnitId())){ throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"单元长必须选择所属单元","单元长必须选择所属单元"); - } + }*/ communityBuildingManagerService.update(dto); return new Result(); } From a8025880e7dd941277528b5a6e12cb74bf1a0941 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 10:41:01 +0800 Subject: [PATCH 22/38] =?UTF-8?q?=E6=A5=BC=E9=95=BF=E5=8D=95=E5=85=83?= =?UTF-8?q?=E9=95=BF=E8=BF=99=EF=BC=8C=E5=90=8C=E4=B8=80=E4=B8=AA=E6=A5=BC?= =?UTF-8?q?=EF=BC=8C=E5=8F=AA=E5=85=81=E8=AE=B8=E6=9C=89=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E6=A5=BC=E9=95=BF=EF=BC=8C=E5=90=8C=E4=B8=80=E4=B8=AA=E5=8D=95?= =?UTF-8?q?=E5=85=83=EF=BC=8C=E5=8F=AA=E5=85=81=E8=AE=B8=E6=9C=89=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E5=8D=95=E5=85=83=E9=95=BF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CommunityBuildingManagerServiceImpl.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java index 0d7593f50c..24fedd15ec 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java @@ -1,10 +1,12 @@ package com.epmet.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; +import com.epmet.commons.tools.exception.ValidateException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.utils.ConvertUtils; @@ -21,6 +23,7 @@ import com.epmet.service.CommunityBuildingManagerService; import com.epmet.service.CustomerGridService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -105,13 +108,27 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl countQuery=new LambdaQueryWrapper<>(); + countQuery.eq(CommunityBuildingManagerEntity::getType,type) + .eq(CommunityBuildingManagerEntity::getBuildingId,buildingId) + .eq(StringUtils.isNotBlank(unitId),CommunityBuildingManagerEntity::getUnitId,unitId) + .ne(StringUtils.isNotBlank(id),CommunityBuildingManagerEntity::getId,id); + if(baseDao.selectCount(countQuery)>NumConstant.ZERO){ + throw new ValidateException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"所选楼栋(单元)已存在楼长(单元长)"); + } + } + /** * 编辑楼长/单元长 * todo: 同步到具体的楼栋 @@ -122,6 +139,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl Date: Tue, 9 May 2023 11:16:45 +0800 Subject: [PATCH 23/38] /gov/org/communityBuildingManager/export --- .../com/epmet/controller/CommunityBuildingManagerController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java index 2240faba43..4378e9bf8b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java @@ -167,6 +167,7 @@ public class CommunityBuildingManagerController { @PostMapping("export") public void exportCommunityBuildingManager(@LoginUser TokenDto tokenDto, @RequestBody CommunityBuildingManagerPageFormDTO formDTO, HttpServletResponse response) throws IOException { formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setStaffId(tokenDto.getUserId()); ExcelWriter excelWriter = null; formDTO.setPageNo(NumConstant.ONE); formDTO.setPageSize(NumConstant.TEN_THOUSAND); From a6015e0aed5b927e5942a182f8457b7e55f291e7 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 11:21:06 +0800 Subject: [PATCH 24/38] /gov/org/communityBuildingManager/export --- .../service/impl/CommunityBuildingManagerServiceImpl.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java index 24fedd15ec..9f8e9bbf09 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java @@ -6,7 +6,6 @@ import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; -import com.epmet.commons.tools.exception.ValidateException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.redis.common.CustomerStaffRedis; import com.epmet.commons.tools.utils.ConvertUtils; @@ -125,7 +124,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImplNumConstant.ZERO){ - throw new ValidateException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"所选楼栋(单元)已存在楼长(单元长)"); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"所选楼栋(单元)已存在楼长(单元长)","所选楼栋(单元)已存在楼长(单元长)"); } } From 2be44668f27270120b3a7feb213b27e3abe13156 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 11:23:29 +0800 Subject: [PATCH 25/38] /gov/org/propertymanagement/page --- .../com/epmet/service/impl/PropertyManagementServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java index 16fdde6f25..23ec2b19ff 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java @@ -210,6 +210,7 @@ public class PropertyManagementServiceImpl implements PropertyManagementService .distinct().collect(Collectors.toList()); result.setNeighborHoodNames(CollectionUtils.isNotEmpty(neighborHoodList) ? StringUtils.join(neighborHoodNames, StrConstant.COMMA_ZH) : StrConstant.EPMETY_STR); result.setNeighborHoodList(neighborHoodList); + result.setTotalNeighborHood(CollectionUtils.isNotEmpty(neighborHoodList)?neighborHoodList.size():NumConstant.ZERO); }); return new PageData<>(list, pageInfo.getTotal(), pageSize); } From 3d68e3a2a0684b1201c5dc483634c85440980f45 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 11:53:51 +0800 Subject: [PATCH 26/38] =?UTF-8?q?=E7=89=A9=E4=B8=9A=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=EF=BC=8C=E5=90=8D=E7=A7=B0=E4=B8=80=E8=87=B4=EF=BC=8C=E8=A6=86?= =?UTF-8?q?=E7=9B=96=E6=95=B0=E6=8D=AE=E5=BA=93=E7=9A=84=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=EF=BC=8C=E4=BB=A5excel=E5=A1=AB=E5=86=99=E7=9A=84=E4=B8=BA?= =?UTF-8?q?=E5=87=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/excel/handler/IcPropertyManagementImportListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcPropertyManagementImportListener.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcPropertyManagementImportListener.java index c591d54331..096f586ee1 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcPropertyManagementImportListener.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/handler/IcPropertyManagementImportListener.java @@ -56,7 +56,7 @@ public class IcPropertyManagementImportListener implements ReadListener Date: Tue, 9 May 2023 12:06:08 +0800 Subject: [PATCH 27/38] /gov/org/propertymanagement/update --- .../impl/PropertyManagementServiceImpl.java | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java index 23ec2b19ff..77f30363d4 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java @@ -141,21 +141,24 @@ public class PropertyManagementServiceImpl implements PropertyManagementService .set(IcPropertyManagementEntity::getUpdatedTime, new Date()) .set(IcPropertyManagementEntity::getUpdatedBy, EpmetRequestHolder.getLoginUserId()); icPropertyManagementDao.update(null, updateWrapper); + CustomerStaffInfoCacheResult staffInfoCacheResult= CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(),EpmetRequestHolder.getLoginUserId()); + + // 查询当前物业,在本组织及下级范围内,管理的小区 + List originNeighborHoodList = icNeighborHoodPropertyDao.getNeighborHoodList(formDTO.getId(), staffInfoCacheResult.getAgencyId()); + // 原来存在关联的小区,现在取消勾选了,需要删除物业小区关系表 + originNeighborHoodList.forEach(origin -> { + // 举例:原来管理A小区,现在取消勾选 + if (!formDTO.getNeighborHoodIdList().contains(origin.getId())) { + LambdaUpdateWrapper updateWrapper1 = new LambdaUpdateWrapper<>(); + updateWrapper1.eq(IcNeighborHoodPropertyEntity::getPropertyId, formDTO.getId()) + .eq(IcNeighborHoodPropertyEntity::getNeighborHoodId, origin.getId()) + .set(IcNeighborHoodPropertyEntity::getDelFlag, NumConstant.ONE_STR) + .set(IcNeighborHoodPropertyEntity::getUpdatedTime, new Date()) + .set(IcNeighborHoodPropertyEntity::getUpdatedBy, EpmetRequestHolder.getLoginUserId()); + icNeighborHoodPropertyDao.update(null, updateWrapper1); + } + }); if (CollectionUtils.isNotEmpty(formDTO.getNeighborHoodIdList())) { - CustomerStaffInfoCacheResult staffInfoCacheResult= CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(),EpmetRequestHolder.getLoginUserId()); - List originNeighborHoodList = icNeighborHoodPropertyDao.getNeighborHoodList(formDTO.getId(),staffInfoCacheResult.getAgencyId()); - //原来关联的,现在清除的小区,删除物业小区关系表 - originNeighborHoodList.forEach(origin->{ - if(!formDTO.getNeighborHoodIdList().contains(origin.getId())){ - LambdaUpdateWrapper updateWrapper1=new LambdaUpdateWrapper<>(); - updateWrapper1.eq(IcNeighborHoodPropertyEntity::getPropertyId,formDTO.getId()) - .eq(IcNeighborHoodPropertyEntity::getNeighborHoodId,origin.getId()) - .set(IcNeighborHoodPropertyEntity::getDelFlag,NumConstant.ONE_STR) - .set(IcNeighborHoodPropertyEntity::getUpdatedTime, new Date()) - .set(IcNeighborHoodPropertyEntity::getUpdatedBy, EpmetRequestHolder.getLoginUserId()); - icNeighborHoodPropertyDao.update(null,updateWrapper1); - } - }); formDTO.getNeighborHoodIdList().forEach(neighborHoodId -> { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId, formDTO.getId()) @@ -167,6 +170,7 @@ public class PropertyManagementServiceImpl implements PropertyManagementService neighborHoodPropertyEntity.setNeighborHoodId(neighborHoodId); icNeighborHoodPropertyDao.insert(neighborHoodPropertyEntity); } + //原本已经存在小区和物业的关系,不用再插入 }); } } From 90f0ddbff1c8d32b60b76cd0bccbf23aa287e12b Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 12:18:11 +0800 Subject: [PATCH 28/38] =?UTF-8?q?=E7=89=A9=E4=B8=9A=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E5=BF=85=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/excel/yt/IcPropertyManagementImportExcelData.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java index 55196ffa18..cf9ad9d66b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java @@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import lombok.Data; +import javax.validation.constraints.NotBlank; + /** * @Description * @Author yzm @@ -14,6 +16,7 @@ public class IcPropertyManagementImportExcelData { /** * 物业名称 */ + @NotBlank(message = "物业名称必填") @ExcelProperty(value = "*物业名称") private String name; From 73a98fe99edde529a4ee11a46f0d72f7a37cacf8 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 12:23:29 +0800 Subject: [PATCH 29/38] /gov/org/communityBuildingManager/import --- .../epmet/constants/ImportTaskConstants.java | 5 ++ .../CommunityBuildingManagerController.java | 60 ++++++++++++++++++- .../CommunityBuildingManagerService.java | 3 + .../CommunityBuildingManagerServiceImpl.java | 39 ++++++++---- 4 files changed, 96 insertions(+), 11 deletions(-) diff --git a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java index f7b664de4b..f25fd4269a 100644 --- a/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java +++ b/epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/constants/ImportTaskConstants.java @@ -88,4 +88,9 @@ public interface ImportTaskConstants { * 物业表:ic_property_management */ String IC_PROPERTY_MANAGEMENT="ic_property_management"; + + /** + * 楼长单元长 + */ + String COMMUNITY_BUILDING_MANAGER="community_building_manager"; } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java index 4378e9bf8b..21f5cbfca9 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java @@ -10,19 +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; @@ -31,15 +38,19 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; +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; /** @@ -51,7 +62,7 @@ import java.util.List; @Slf4j @RestController @RequestMapping("communityBuildingManager") -public class CommunityBuildingManagerController { +public class CommunityBuildingManagerController implements ResultDataResolver { @Autowired private CommunityBuildingManagerService communityBuildingManagerService; @@ -207,6 +218,53 @@ public class CommunityBuildingManagerController { } } + /** + * 导入excel + * + * @return + */ + @PostMapping("import") + public Result importExcel(MultipartFile file) { + // 1.暂存文件 + String originalFilename = file.getOriginalFilename(); + String extName = originalFilename.substring(originalFilename.lastIndexOf(".")); + + Path fileSavePath; + try { + Path importPath = FileUtils.getAndCreateDirUnderEpmetFilesDir(ImportTaskConstants.COMMUNITY_BUILDING_MANAGER, "import"); + fileSavePath = importPath.resolve(UUID.randomUUID().toString().concat(extName)); + } catch (IOException e) { + String errorMsg = ExceptionUtils.getErrorStackTrace(e); + log.error("【楼长单元长导入】创建临时存储文件失败:{}", errorMsg); + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "文件上传失败", "文件上传失败"); + } + + InputStream is = null; + FileOutputStream os = null; + + try { + is = file.getInputStream(); + os = new FileOutputStream(fileSavePath.toString()); + IOUtils.copy(is, os); + } catch (Exception e) { + log.error(ImportTaskConstants.COMMUNITY_BUILDING_MANAGER + "表 importExcel exception", e); + } finally { + org.apache.poi.util.IOUtils.closeQuietly(is); + org.apache.poi.util.IOUtils.closeQuietly(os); + } + + // 2.生成导入任务记录 + ImportTaskCommonResultDTO rstData = getResultDataOrThrowsException( + ImportTaskUtils.createImportTask(originalFilename, ImportTaskConstants.COMMUNITY_BUILDING_MANAGER), + ServiceConstant.EPMET_COMMON_SERVICE, + EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), + "楼长单元长导入excel错误", + "楼长单元长导入excel错误"); + + // 3.执行导入 + communityBuildingManagerService.execAsyncExcelImport(fileSavePath, rstData.getTaskId()); + return new Result(); + } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CommunityBuildingManagerService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CommunityBuildingManagerService.java index b67d4d0d35..eb32743443 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CommunityBuildingManagerService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/CommunityBuildingManagerService.java @@ -7,6 +7,7 @@ import com.epmet.dto.result.CommunityBuildingManagerDTO; import com.epmet.dto.result.yt.CommunityBuildingManagerResultDTO; import com.epmet.entity.CommunityBuildingManagerEntity; +import java.nio.file.Path; import java.util.List; /** @@ -63,4 +64,6 @@ public interface CommunityBuildingManagerService extends BaseService ids); + + void execAsyncExcelImport(Path fileSavePath, String taskId); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java index 9f8e9bbf09..817d435c9b 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java @@ -22,11 +22,14 @@ import com.epmet.service.CommunityBuildingManagerService; import com.epmet.service.CustomerGridService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.nio.file.Path; import java.util.List; /** @@ -35,6 +38,7 @@ import java.util.List; * @author generator generator@elink-cn.com * @since v1.0.0 2023-05-06 */ +@Slf4j @Service public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl implements CommunityBuildingManagerService { @@ -67,7 +71,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl pageInfo = new PageInfo<>(resList); - return new PageData<>(resList, pageInfo.getTotal(),formDTO.getPageSize()); + return new PageData<>(resList, pageInfo.getTotal(), formDTO.getPageSize()); } /** @@ -108,7 +112,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl countQuery=new LambdaQueryWrapper<>(); - countQuery.eq(CommunityBuildingManagerEntity::getType,type) - .eq(CommunityBuildingManagerEntity::getBuildingId,buildingId) - .eq(StringUtils.isNotBlank(unitId),CommunityBuildingManagerEntity::getUnitId,unitId) - .ne(StringUtils.isNotBlank(id),CommunityBuildingManagerEntity::getId,id); - if(baseDao.selectCount(countQuery)>NumConstant.ZERO){ - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"所选楼栋(单元)已存在楼长(单元长)","所选楼栋(单元)已存在楼长(单元长)"); + LambdaQueryWrapper countQuery = new LambdaQueryWrapper<>(); + countQuery.eq(CommunityBuildingManagerEntity::getType, type) + .eq(CommunityBuildingManagerEntity::getBuildingId, buildingId) + .eq(StringUtils.isNotBlank(unitId), CommunityBuildingManagerEntity::getUnitId, unitId) + .ne(StringUtils.isNotBlank(id), CommunityBuildingManagerEntity::getId, id); + if (baseDao.selectCount(countQuery) > NumConstant.ZERO) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "所选楼栋(单元)已存在楼长(单元长)", "所选楼栋(单元)已存在楼长(单元长)"); } } @@ -138,7 +142,7 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl Date: Tue, 9 May 2023 12:27:11 +0800 Subject: [PATCH 30/38] =?UTF-8?q?/gov/org/communityBuildingManager/import,?= =?UTF-8?q?=E6=9C=AA=E5=AE=8C=E5=BE=85=E7=BB=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CommunityBuildingManagerController.java | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java index 21f5cbfca9..01e62c31f4 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java @@ -10,26 +10,20 @@ 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; @@ -42,15 +36,12 @@ 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; /** @@ -225,7 +216,8 @@ public class CommunityBuildingManagerController implements ResultDataResolver { */ @PostMapping("import") public Result importExcel(MultipartFile file) { - // 1.暂存文件 + return new Result(); + /*// 1.暂存文件 String originalFilename = file.getOriginalFilename(); String extName = originalFilename.substring(originalFilename.lastIndexOf(".")); @@ -263,7 +255,7 @@ public class CommunityBuildingManagerController implements ResultDataResolver { // 3.执行导入 communityBuildingManagerService.execAsyncExcelImport(fileSavePath, rstData.getTaskId()); - return new Result(); + return new Result();*/ } From dd8eb84ecbe9484b9776c9b90802c31bd88891c9 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 12:33:50 +0800 Subject: [PATCH 31/38] =?UTF-8?q?/gov/org/communityBuildingManager/import,?= =?UTF-8?q?=E6=9C=AA=E5=AE=8C=E5=BE=85=E7=BB=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/controller/CommunityBuildingManagerController.java | 2 +- .../java/com/epmet/controller/PropertyManagementController.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java index 01e62c31f4..7c4f1fef3c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CommunityBuildingManagerController.java @@ -215,7 +215,7 @@ public class CommunityBuildingManagerController implements ResultDataResolver { * @return */ @PostMapping("import") - public Result importExcel(MultipartFile file) { + public Result importExcel(@RequestPart("file") MultipartFile file) { return new Result(); /*// 1.暂存文件 String originalFilename = file.getOriginalFilename(); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java index c3bff703b0..9adff02f7f 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java @@ -239,7 +239,7 @@ public class PropertyManagementController implements ResultDataResolver { * @return */ @PostMapping("import") - public Result importExcel(MultipartFile file) { + public Result importExcel(@RequestPart("file") MultipartFile file) { // 1.暂存文件 String originalFilename = file.getOriginalFilename(); String extName = originalFilename.substring(originalFilename.lastIndexOf(".")); From e46992190554c6a7797bad2d7d8a1faf20034240 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 12:58:07 +0800 Subject: [PATCH 32/38] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=89=A9=E4=B8=9A=EF=BC=9A/gov/org/propertymanagement/delete-b?= =?UTF-8?q?atch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PropertyManagementController.java | 15 +++++++- .../service/PropertyManagementService.java | 12 ++++++- .../impl/PropertyManagementServiceImpl.java | 34 ++++++++++++++++--- 3 files changed, 55 insertions(+), 6 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java index 9adff02f7f..4c77e5472c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java @@ -139,7 +139,20 @@ public class PropertyManagementController implements ResultDataResolver { public Result delete(@RequestBody IcPropertyManagementFormDTO formDTO){ //效验数据 ValidatorUtils.validateEntity(formDTO, IcPropertyManagementFormDTO.DeleteGroup.class); - propertyManagementService.delete(formDTO); + propertyManagementService.delete(formDTO.getId()); + return new Result(); + } + + /** + * 物业批量删除 + * @param ids + * @return + */ + @PostMapping("delete-batch") + public Result deleteBatch( @RequestBody List ids) { + if (CollectionUtils.isNotEmpty(ids)) { + propertyManagementService.deleteBatch(ids); + } return new Result(); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java index 301b730072..ccd2b27a38 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java @@ -38,7 +38,11 @@ public interface PropertyManagementService { String add(IcPropertyManagementFormDTO formDTO); void update(IcPropertyManagementFormDTO formDTO); - void delete(IcPropertyManagementFormDTO formDTO); + /** + * 物业管理批量删除 + * @param id + */ + void delete(String id); /** * 物业管理-列表查询 @@ -68,4 +72,10 @@ public interface PropertyManagementService { * @param taskId */ void execAsyncExcelImport(Path fileSavePath, String taskId); + + /** + * 物业管理批量删除 + * @param ids + */ + void deleteBatch(List ids); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java index 77f30363d4..3e34e3c845 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java @@ -177,19 +177,45 @@ public class PropertyManagementServiceImpl implements PropertyManagementService /** * 单个删除 - * @param formDTO + * @param id */ @Override @Transactional(rollbackFor = Exception.class) - public void delete(IcPropertyManagementFormDTO formDTO) { + public void delete(String id) { LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); - queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId,formDTO.getId()); + queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId,id); if (icNeighborHoodPropertyDao.selectCount(queryWrapper) > 0) { throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"物业存在与小区关联,无法删除","已与小区关联,无法删除"); } - icPropertyManagementDao.deleteById(formDTO.getId()); + icPropertyManagementDao.deleteById(id); } + /** + * 物业管理批量删除 + * @param ids + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteBatch(List ids) { + if (CollectionUtils.isEmpty(ids)) { + return; + } + int failedNum = NumConstant.ZERO; + for (String id : ids) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId, id); + if (icNeighborHoodPropertyDao.selectCount(queryWrapper) > 0) { + failedNum += 1; + } else { + icPropertyManagementDao.deleteById(id); + } + } + if (failedNum > NumConstant.ZERO) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "物业存在与小区关联,无法删除", String.format("%s个物业已与小区关联,无法批量删除,请先解除与小区关联关系", failedNum)); + } + } + + /** * 物业管理-列表查询 * From de6311a50b1e8451f9d6eb8d3dd9854617a19c30 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 13:16:52 +0800 Subject: [PATCH 33/38] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=89=A9=E4=B8=9A=EF=BC=9A/gov/org/propertymanagement/delete-b?= =?UTF-8?q?atch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PropertyManagementController.java | 13 +++-- .../service/PropertyManagementService.java | 6 ++- .../impl/PropertyManagementServiceImpl.java | 49 +++++++++++++------ 3 files changed, 46 insertions(+), 22 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java index 4c77e5472c..50767693ed 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java @@ -144,14 +144,19 @@ public class PropertyManagementController implements ResultDataResolver { } /** - * 物业批量删除 + * 物业管理-批量删除 + * * @param ids - * @return + * @return 返回失败的id列表 */ @PostMapping("delete-batch") - public Result deleteBatch( @RequestBody List ids) { + public Result> deleteBatch(@RequestBody List ids) { if (CollectionUtils.isNotEmpty(ids)) { - propertyManagementService.deleteBatch(ids); + List failedIdList = propertyManagementService.deleteBatch(ids); + Result result = new Result>().ok(failedIdList); + result.setMsg("部门物业删除失败"); + result.setCode(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode()); + return result; } return new Result(); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java index ccd2b27a38..3f50a0658c 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java @@ -42,7 +42,7 @@ public interface PropertyManagementService { * 物业管理批量删除 * @param id */ - void delete(String id); + Boolean delete(String id); /** * 物业管理-列表查询 @@ -75,7 +75,9 @@ public interface PropertyManagementService { /** * 物业管理批量删除 + * * @param ids + * @return 返回失败的id列表 */ - void deleteBatch(List ids); + List deleteBatch(List ids); } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java index 3e34e3c845..d91fb52d38 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java @@ -177,42 +177,59 @@ public class PropertyManagementServiceImpl implements PropertyManagementService /** * 单个删除 + * * @param id */ @Override @Transactional(rollbackFor = Exception.class) - public void delete(String id) { - LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); - queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId,id); + public Boolean delete(String id) { + Boolean delResFlag=true; + CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(), EpmetRequestHolder.getLoginUserId()); + // 查询当前物业,在本组织及下级范围内,管理的小区 + List originNeighborHoodList = icNeighborHoodPropertyDao.getNeighborHoodList(id, staffInfoCacheResult.getAgencyId()); + // 如果存在记录,则解除物业与小区关联关系 + originNeighborHoodList.forEach(origin -> { + LambdaUpdateWrapper updateWrapper1 = new LambdaUpdateWrapper<>(); + updateWrapper1.eq(IcNeighborHoodPropertyEntity::getPropertyId, id) + .eq(IcNeighborHoodPropertyEntity::getNeighborHoodId, origin.getId()) + .set(IcNeighborHoodPropertyEntity::getDelFlag, NumConstant.ONE_STR) + .set(IcNeighborHoodPropertyEntity::getUpdatedTime, new Date()) + .set(IcNeighborHoodPropertyEntity::getUpdatedBy, EpmetRequestHolder.getLoginUserId()); + icNeighborHoodPropertyDao.update(null, updateWrapper1); + }); + // 再查询是否存在其他组织下的小区,与该物业有关联,存在则不允许删除 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId, id); if (icNeighborHoodPropertyDao.selectCount(queryWrapper) > 0) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"物业存在与小区关联,无法删除","已与小区关联,无法删除"); + delResFlag=false; + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "当前物业已与其他组织下的小区关联,无法删除", "当前物业已与其他组织下的小区关联,无法删除"); } + // 删除物业表 icPropertyManagementDao.deleteById(id); + return delResFlag; } + /** * 物业管理批量删除 + * * @param ids + * @return 返回失败的id列表 */ @Override @Transactional(rollbackFor = Exception.class) - public void deleteBatch(List ids) { + public List deleteBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { - return; + return new ArrayList<>(); } - int failedNum = NumConstant.ZERO; + List failedIdList = new ArrayList<>(); for (String id : ids) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId, id); - if (icNeighborHoodPropertyDao.selectCount(queryWrapper) > 0) { - failedNum += 1; - } else { - icPropertyManagementDao.deleteById(id); + Boolean res = delete(id); + if (!res) { + failedIdList.add(id); } } - if (failedNum > NumConstant.ZERO) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "物业存在与小区关联,无法删除", String.format("%s个物业已与小区关联,无法批量删除,请先解除与小区关联关系", failedNum)); - } + return failedIdList; } From 5a79a055643d898cc8da60fe36e2bbc1d2b4bfa5 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 13:34:54 +0800 Subject: [PATCH 34/38] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=89=A9=E4=B8=9A=EF=BC=9A/gov/org/propertymanagement/delete-b?= =?UTF-8?q?atch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/service/PropertyManagementService.java | 2 +- .../service/impl/PropertyManagementServiceImpl.java | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java index 3f50a0658c..6966cf38a1 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/PropertyManagementService.java @@ -42,7 +42,7 @@ public interface PropertyManagementService { * 物业管理批量删除 * @param id */ - Boolean delete(String id); + void delete(String id); /** * 物业管理-列表查询 diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java index d91fb52d38..8e4d6331b7 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java @@ -182,8 +182,7 @@ public class PropertyManagementServiceImpl implements PropertyManagementService */ @Override @Transactional(rollbackFor = Exception.class) - public Boolean delete(String id) { - Boolean delResFlag=true; + public void delete(String id) { CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(), EpmetRequestHolder.getLoginUserId()); // 查询当前物业,在本组织及下级范围内,管理的小区 List originNeighborHoodList = icNeighborHoodPropertyDao.getNeighborHoodList(id, staffInfoCacheResult.getAgencyId()); @@ -201,12 +200,10 @@ public class PropertyManagementServiceImpl implements PropertyManagementService LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId, id); if (icNeighborHoodPropertyDao.selectCount(queryWrapper) > 0) { - delResFlag=false; throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "当前物业已与其他组织下的小区关联,无法删除", "当前物业已与其他组织下的小区关联,无法删除"); } // 删除物业表 icPropertyManagementDao.deleteById(id); - return delResFlag; } @@ -224,7 +221,13 @@ public class PropertyManagementServiceImpl implements PropertyManagementService } List failedIdList = new ArrayList<>(); for (String id : ids) { - Boolean res = delete(id); + Boolean res =true; + try{ + //调用单挑删除方法 + delete(id); + }catch(EpmetException e){ + res=false; + } if (!res) { failedIdList.add(id); } From fcb374a34f600ab48856f632ae937a2396a2b2d5 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 13:45:57 +0800 Subject: [PATCH 35/38] 111 --- .../com/epmet/excel/yt/IcPropertyManagementImportExcelData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java index cf9ad9d66b..7a318bbad7 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/excel/yt/IcPropertyManagementImportExcelData.java @@ -37,7 +37,7 @@ public class IcPropertyManagementImportExcelData { /** * 物业名称 */ - @ExcelProperty(value = "物业名称") + @ExcelProperty(value = "*物业名称") private String name; /** From 9b920e5256789e85b4b952bce9d963f6449190e8 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 13:47:40 +0800 Subject: [PATCH 36/38] 111 --- .../com/epmet/controller/PropertyManagementController.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java index 50767693ed..c6bfacb04e 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/PropertyManagementController.java @@ -153,6 +153,9 @@ public class PropertyManagementController implements ResultDataResolver { public Result> deleteBatch(@RequestBody List ids) { if (CollectionUtils.isNotEmpty(ids)) { List failedIdList = propertyManagementService.deleteBatch(ids); + if(CollectionUtils.isEmpty(failedIdList)){ + return new Result<>(); + } Result result = new Result>().ok(failedIdList); result.setMsg("部门物业删除失败"); result.setCode(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode()); From 9608a4fb868b0ba9ad058b7a1676e594ce95287c Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 14:25:50 +0800 Subject: [PATCH 37/38] =?UTF-8?q?=E7=BB=8F=E4=B8=8E=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=BB=8F=E7=90=86=E7=A1=AE=E8=AE=A4=EF=BC=8C=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E7=89=A9=E4=B8=9A=EF=BC=8C=E7=9B=B4=E6=8E=A5=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=97=A0=E9=9C=80=E5=88=A4=E6=96=AD=E4=B8=8B=E9=9D=A2=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=85=B3=E8=81=94=E5=B0=8F=E5=8C=BA=E3=80=82=20?= =?UTF-8?q?=E4=B8=94=E5=88=AB=E7=9A=84=E7=A4=BE=E5=8C=BA=E5=9C=A8=E7=94=A8?= =?UTF-8?q?=E6=AD=A4=E7=89=A9=E4=B8=9A=EF=BC=8C=E4=B9=9F=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E3=80=82=E6=B8=85=E9=99=A4=E6=89=80=E6=9C=89?= =?UTF-8?q?=E5=B0=8F=E5=8C=BA=E7=9A=84=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/PropertyManagementServiceImpl.java | 34 ++++++++----------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java index 8e4d6331b7..6ead260319 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/PropertyManagementServiceImpl.java @@ -183,27 +183,21 @@ public class PropertyManagementServiceImpl implements PropertyManagementService @Override @Transactional(rollbackFor = Exception.class) public void delete(String id) { - CustomerStaffInfoCacheResult staffInfoCacheResult = CustomerStaffRedis.getStaffInfo(EpmetRequestHolder.getLoginUserCustomerId(), EpmetRequestHolder.getLoginUserId()); - // 查询当前物业,在本组织及下级范围内,管理的小区 - List originNeighborHoodList = icNeighborHoodPropertyDao.getNeighborHoodList(id, staffInfoCacheResult.getAgencyId()); - // 如果存在记录,则解除物业与小区关联关系 - originNeighborHoodList.forEach(origin -> { - LambdaUpdateWrapper updateWrapper1 = new LambdaUpdateWrapper<>(); - updateWrapper1.eq(IcNeighborHoodPropertyEntity::getPropertyId, id) - .eq(IcNeighborHoodPropertyEntity::getNeighborHoodId, origin.getId()) - .set(IcNeighborHoodPropertyEntity::getDelFlag, NumConstant.ONE_STR) - .set(IcNeighborHoodPropertyEntity::getUpdatedTime, new Date()) - .set(IcNeighborHoodPropertyEntity::getUpdatedBy, EpmetRequestHolder.getLoginUserId()); - icNeighborHoodPropertyDao.update(null, updateWrapper1); - }); - // 再查询是否存在其他组织下的小区,与该物业有关联,存在则不允许删除 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId, id); - if (icNeighborHoodPropertyDao.selectCount(queryWrapper) > 0) { - throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "当前物业已与其他组织下的小区关联,无法删除", "当前物业已与其他组织下的小区关联,无法删除"); - } + Date now = new Date(); + // 删除物业与小区关联关系表 + LambdaUpdateWrapper updateWrapper1 = new LambdaUpdateWrapper<>(); + updateWrapper1.eq(IcNeighborHoodPropertyEntity::getPropertyId, id) + .set(IcNeighborHoodPropertyEntity::getDelFlag, NumConstant.ONE_STR) + .set(IcNeighborHoodPropertyEntity::getUpdatedTime, now) + .set(IcNeighborHoodPropertyEntity::getUpdatedBy, EpmetRequestHolder.getLoginUserId()); + icNeighborHoodPropertyDao.update(null, updateWrapper1); // 删除物业表 - icPropertyManagementDao.deleteById(id); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(IcPropertyManagementEntity::getId, id) + .set(IcPropertyManagementEntity::getDelFlag, NumConstant.ONE_STR) + .set(IcPropertyManagementEntity::getUpdatedTime, now) + .set(IcPropertyManagementEntity::getUpdatedBy, EpmetRequestHolder.getLoginUserId()); + icPropertyManagementDao.update(null, updateWrapper); } From 4d2ba136e8f0b1db96891b9e5f51aca972ca3e30 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 9 May 2023 14:49:08 +0800 Subject: [PATCH 38/38] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=A5=BC=E9=95=BF?= =?UTF-8?q?=EF=BC=8C=20=E5=90=8C=E6=97=B6=E6=B8=85=E7=A9=BAic=5Fbuilding?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/CommunityBuildingManagerServiceImpl.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java index 817d435c9b..c6cf2f0eb3 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CommunityBuildingManagerServiceImpl.java @@ -1,6 +1,7 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; @@ -30,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.nio.file.Path; +import java.util.Date; import java.util.List; /** @@ -159,7 +161,16 @@ public class CommunityBuildingManagerServiceImpl extends BaseServiceImpl ids) { - baseDao.deleteBatchIds(ids); + Date now=new Date(); + ids.forEach(id->{ + LambdaUpdateWrapper 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 + }); }