From 96aa24bc06dcd582d715e6aac6b5a77684202fbf Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Thu, 2 Feb 2023 17:52:58 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E4=B8=9A=E7=AE=A1=E7=90=86=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/dto/IcPropertyManagementDTO.java | 9 +++- .../dto/form/IcPropertyManagementFormDTO.java | 9 ++++ .../PropertyManagementController.java | 34 +++++++++---- .../epmet/dao/IcPropertyManagementDao.java | 4 +- .../entity/IcPropertyManagementEntity.java | 2 +- .../service/PropertyManagementService.java | 4 ++ .../impl/PropertyManagementServiceImpl.java | 50 ++++++++++++++++--- .../V0.0.48__ic_property_management.sql | 8 +++ .../mapper/IcPropertyManagementDao.xml | 19 ++++++- 9 files changed, 117 insertions(+), 22 deletions(-) create mode 100644 epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.48__ic_property_management.sql 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 3554df553f..a276e36387 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 @@ -43,6 +43,10 @@ public class IcPropertyManagementDTO implements Serializable { * 物业名称 */ private String name; + /** + * 客户id + */ + private String customerId; /** * 删除标识 0未删除、1已删除 @@ -73,5 +77,8 @@ public class IcPropertyManagementDTO implements Serializable { * 更新时间 */ private Date updatedTime; - + /** + * 关联的小区数量 + */ + 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 63ea329d22..bbc2cd7152 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 @@ -22,6 +22,7 @@ import lombok.Data; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; @@ -39,6 +40,8 @@ public class IcPropertyManagementFormDTO implements Serializable { public interface UpdateShowGroup extends CustomerClientShowGroup { } + public interface PageGroup extends CustomerClientShowGroup { + } @NotBlank(message = "物业id不能为空", groups = {DeleteGroup.class, UpdateShowGroup.class}) private String id; @@ -49,5 +52,11 @@ public class IcPropertyManagementFormDTO implements Serializable { @Length(max = 50, message = "物业名称不能超过50个字", groups = {AddShowGroup.class}) private String name; + 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 6a38dd3e39..ba24389143 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 @@ -18,12 +18,13 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.page.PageData; 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.IcPropertyManagementDTO; import com.epmet.dto.form.IcPropertyManagementFormDTO; import com.epmet.dto.result.IcPropertyManagementResultDTO; -import com.epmet.service.IcPropertyManagementService; import com.epmet.service.PropertyManagementService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -45,33 +46,46 @@ import java.util.Map; @RestController @RequestMapping("propertymanagement") public class PropertyManagementController { - - @Autowired - private IcPropertyManagementService icPropertyManagementService; @Autowired private PropertyManagementService propertyManagementService; + /** + * 分页查询物业列表 + */ + @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())); + } - + /** + * 新增小区时,下拉框调用此接口 + * @return + */ @PostMapping("list") public Result> list(){ return new Result>().ok(propertyManagementService.getList()); } - + /** + * 新增物业 + * 新增小区页面,添加小区也调用此接口 + * @param tokenDTO + * @param formDTO + * @return + */ @PostMapping("add") public Result add(@LoginUser TokenDto tokenDTO, @RequestBody IcPropertyManagementFormDTO formDTO){ //效验数据 + formDTO.setCustomerId(tokenDTO.getCustomerId()); ValidatorUtils.validateEntity(formDTO, IcPropertyManagementFormDTO.AddShowGroup.class); Map map=new HashMap<>(); map.put("propertyId",propertyManagementService.add(formDTO)); return new Result().ok(map); } - - @PostMapping("update") - public Result update(@LoginUser TokenDto tokenDTO, @RequestBody IcPropertyManagementFormDTO formDTO){ + public Result update(@RequestBody IcPropertyManagementFormDTO formDTO){ //效验数据 ValidatorUtils.validateEntity(formDTO, IcPropertyManagementFormDTO.UpdateShowGroup.class); propertyManagementService.update(formDTO); @@ -79,7 +93,7 @@ public class PropertyManagementController { } @PostMapping("delete") - public Result delete(@LoginUser TokenDto tokenDTO, @RequestBody IcPropertyManagementFormDTO formDTO){ + public Result delete(@RequestBody IcPropertyManagementFormDTO formDTO){ //效验数据 ValidatorUtils.validateEntity(formDTO, IcPropertyManagementFormDTO.DeleteGroup.class); propertyManagementService.delete(formDTO); diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPropertyManagementDao.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPropertyManagementDao.java index 52a038ab3b..915b2f6d7d 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPropertyManagementDao.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/dao/IcPropertyManagementDao.java @@ -34,7 +34,7 @@ import java.util.List; @Mapper public interface IcPropertyManagementDao extends BaseDao { - IcPropertyManagementEntity selectByName(String name); + IcPropertyManagementEntity selectByName(String customerId,String name,String id); /** * @Description 根据物业名查询已存在的物业名 @@ -58,4 +58,6 @@ public interface IcPropertyManagementDao extends BaseDao selectPropertyNameList(String neighborhoodId); + + List queryList(@Param("customerId") String customerId,@Param("name")String name); } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPropertyManagementEntity.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPropertyManagementEntity.java index ff8b648d6a..239fce61cc 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPropertyManagementEntity.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/entity/IcPropertyManagementEntity.java @@ -39,5 +39,5 @@ public class IcPropertyManagementEntity extends BaseEpmetEntity { * 物业名称 */ private String name; - + private String customerId; } 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 7bbbad3616..f3f77cde27 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 @@ -17,6 +17,8 @@ package com.epmet.service; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.IcPropertyManagementDTO; import com.epmet.dto.form.IcPropertyManagementFormDTO; import com.epmet.dto.result.IcPropertyManagementResultDTO; @@ -36,4 +38,6 @@ public interface PropertyManagementService { void update(IcPropertyManagementFormDTO formDTO); void delete(IcPropertyManagementFormDTO formDTO); + + PageData page(Integer pageNo, Integer pageSize, String name); } \ 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 bfc46dd0b6..41d2f7bfbc 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,19 +1,24 @@ package com.epmet.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.epmet.commons.tools.exception.RenException; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.utils.ConvertUtils; +import com.epmet.commons.tools.utils.EpmetRequestHolder; import com.epmet.dao.IcNeighborHoodPropertyDao; import com.epmet.dao.IcPropertyManagementDao; +import com.epmet.dto.IcPropertyManagementDTO; import com.epmet.dto.form.IcPropertyManagementFormDTO; import com.epmet.dto.result.IcPropertyManagementResultDTO; import com.epmet.entity.IcNeighborHoodPropertyEntity; import com.epmet.entity.IcPropertyManagementEntity; import com.epmet.service.PropertyManagementService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.ArrayList; @@ -28,9 +33,15 @@ public class PropertyManagementServiceImpl implements PropertyManagementService @Resource private IcNeighborHoodPropertyDao icNeighborHoodPropertyDao; + /** + * 查询当前客户下的物业 + * @return + */ @Override public List getList() { - List propertyManagementEntityList = icPropertyManagementDao.selectList(null); + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(IcPropertyManagementEntity::getCustomerId, EpmetRequestHolder.getLoginUserCustomerId()); + List propertyManagementEntityList = icPropertyManagementDao.selectList(queryWrapper); List list = new ArrayList<>(); propertyManagementEntityList.forEach(item->{ IcPropertyManagementResultDTO propertyManagementResultDTO = new IcPropertyManagementResultDTO(); @@ -41,13 +52,19 @@ public class PropertyManagementServiceImpl implements PropertyManagementService return list; } + /** + * 新增物业 + * 名称客户下唯一 + * @param formDTO + * @return + */ @Override @Transactional(rollbackFor = Exception.class) public String add(IcPropertyManagementFormDTO formDTO) { //物业名字平台内唯一 //如果输入的物业名字已经存在,直接返回物业id formDTO.setName(formDTO.getName().trim()); - IcPropertyManagementEntity entity = icPropertyManagementDao.selectByName(formDTO.getName()); + IcPropertyManagementEntity entity = icPropertyManagementDao.selectByName(formDTO.getCustomerId(),formDTO.getName(),null); if (null != entity) { return entity.getId(); } @@ -59,17 +76,34 @@ public class PropertyManagementServiceImpl implements PropertyManagementService @Override @Transactional(rollbackFor = Exception.class) public void update(IcPropertyManagementFormDTO formDTO) { + IcPropertyManagementEntity entity = icPropertyManagementDao.selectByName(EpmetRequestHolder.getLoginUserCustomerId(),formDTO.getName(),formDTO.getId()); + if (null != entity) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"物业名称已存在","物业名称已存在"); + } IcPropertyManagementEntity icPropertyManagementEntity = ConvertUtils.sourceToTarget(formDTO, IcPropertyManagementEntity.class); icPropertyManagementDao.updateById(icPropertyManagementEntity); } + /** + * 单个删除 + * @param formDTO + */ @Override @Transactional(rollbackFor = Exception.class) public void delete(IcPropertyManagementFormDTO formDTO) { - List list = icNeighborHoodPropertyDao.selectList(new QueryWrapper().lambda().eq(IcNeighborHoodPropertyEntity::getPropertyId, formDTO.getId())); - if(!CollectionUtils.isEmpty(list)){ - throw new RenException("物业存在与小区关联,无法删除"); + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(IcNeighborHoodPropertyEntity::getPropertyId,formDTO.getId()); + if (icNeighborHoodPropertyDao.selectCount(queryWrapper) > 0) { + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"物业存在与小区关联,无法删除","已与小区关联,无法删除"); } icPropertyManagementDao.deleteById(formDTO.getId()); } + + @Override + public PageData page(Integer pageNo, Integer pageSize, String name) { + PageHelper.startPage(pageNo,pageSize); + List list=icPropertyManagementDao.queryList(EpmetRequestHolder.getLoginUserCustomerId(),name); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.48__ic_property_management.sql b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.48__ic_property_management.sql new file mode 100644 index 0000000000..14ec16f9b4 --- /dev/null +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/db/migration/V0.0.48__ic_property_management.sql @@ -0,0 +1,8 @@ +alter table ic_property_management add COLUMN `CUSTOMER_ID` varchar(64) DEFAULT NULL COMMENT '客户id' after NAME; + + +update ic_property_management p,ic_neighbor_hood_property pr,ic_neighbor_hood h +set p.CUSTOMER_ID=h.CUSTOMER_ID +where p.DEL_FLAG='0' + and p.id=pr.PROPERTY_ID + and pr.NEIGHBOR_HOOD_ID=h.id; \ No newline at end of file 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 0b0aba046c..045514482f 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 @@ -14,14 +14,18 @@ - SELECT m.id FROM ic_property_management m WHERE m.DEL_FLAG = '0' + and m.customer_id = #{customerId} AND m.`NAME` = #{name} + + and m.id !=#{id} + @@ -65,4 +69,17 @@ AND p.DEL_FLAG = '0' ) + + \ No newline at end of file