|
|
@ -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<Communi |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void save(CommunityBuildingManagerDTO addFormDto) { |
|
|
|
// 唯一性判断,同一个楼可以有多个楼长吗?待定。。。
|
|
|
|
// 唯一性判断,类型+楼栋id或者类型+单元id唯一
|
|
|
|
checkUnqiue(addFormDto.getType(),addFormDto.getBuildingId(),addFormDto.getUnitId(),null); |
|
|
|
CommunityBuildingManagerEntity entity = ConvertUtils.sourceToTarget(addFormDto, CommunityBuildingManagerEntity.class); |
|
|
|
CustomerGridDTO gridDTO = SpringContextUtils.getBean(CustomerGridService.class).get(addFormDto.getGridId()); |
|
|
|
entity.setOrgIdPath(PidUtils.convertPid2OrgIdPath(gridDTO.getId(), gridDTO.getPids())); |
|
|
|
insert(entity); |
|
|
|
} |
|
|
|
|
|
|
|
private void checkUnqiue(String type, String buildingId, String unitId, String id) { |
|
|
|
// 1号楼只允许有一个楼长
|
|
|
|
// 1号楼只允许有一个单元长
|
|
|
|
LambdaQueryWrapper<CommunityBuildingManagerEntity> 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<Communi |
|
|
|
@Override |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
public void update(CommunityBuildingManagerDTO updateFormDto) { |
|
|
|
checkUnqiue(updateFormDto.getType(),updateFormDto.getBuildingId(),updateFormDto.getUnitId(),updateFormDto.getId()); |
|
|
|
CommunityBuildingManagerEntity entity = ConvertUtils.sourceToTarget(updateFormDto, CommunityBuildingManagerEntity.class); |
|
|
|
CustomerGridDTO gridDTO = SpringContextUtils.getBean(CustomerGridService.class).get(updateFormDto.getGridId()); |
|
|
|
entity.setOrgIdPath(PidUtils.convertPid2OrgIdPath(gridDTO.getId(), gridDTO.getPids())); |
|
|
|