huanghongfa
2021-09-02 177249c76aeea0b4bf8d8816d4994e3b445b45ce
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructHouseServiceImpl.java
@@ -1,5 +1,17 @@
package com.panzhihua.service_community.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -9,7 +21,6 @@
import com.panzhihua.common.model.vos.community.BatchhouseVO;
import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
import com.panzhihua.common.model.vos.community.ComMngStructHouseVO;
import com.panzhihua.common.model.vos.user.CommunityUserInfoVO;
import com.panzhihua.service_community.dao.ComMngStructAreaDAO;
import com.panzhihua.service_community.dao.ComMngStructHouseDAO;
import com.panzhihua.service_community.dao.ComMngStructHouseUserDAO;
@@ -17,17 +28,8 @@
import com.panzhihua.service_community.model.dos.ComMngStructHouseDO;
import com.panzhihua.service_community.model.dos.ComMngStructHouseUserDO;
import com.panzhihua.service_community.service.ComMngStructHouseService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -37,30 +39,37 @@
 **/
@Slf4j
@Service
public class ComMngStructHouseServiceImpl extends ServiceImpl<ComMngStructHouseDAO, ComMngStructHouseDO> implements ComMngStructHouseService {
public class ComMngStructHouseServiceImpl extends ServiceImpl<ComMngStructHouseDAO, ComMngStructHouseDO>
    implements ComMngStructHouseService {
    @Resource
    private ComMngStructHouseDAO comMngStructHouseDAO;
    @Resource
    private ComMngStructHouseUserDAO comMngStructHouseUserDAO;
    @Resource
    private ComMngStructAreaDAO comMngStructAreaDAO;
    /**
     * 房屋信息
     *
     * @param userId 用户id
     * @param userId
     *            用户id
     * @return 房屋信息
     */
    @Override
    public R detailHouse(Long userId) {
        List<ComMngStructHouseVO> comMngStructHouseVOS = new ArrayList<>();
        if ( userId< 100000000l) {
            List<ComMngStructHouseUserDO> comMngStructHouseUserDOS = comMngStructHouseUserDAO.selectList(new QueryWrapper<ComMngStructHouseUserDO>().lambda().eq(ComMngStructHouseUserDO::getUserId, userId));
            List<ComMngStructHouseUserDO> comMngStructHouseUserDOS = comMngStructHouseUserDAO.selectList(
                new QueryWrapper<ComMngStructHouseUserDO>().lambda().eq(ComMngStructHouseUserDO::getUserId, userId));
            if (!ObjectUtils.isEmpty(comMngStructHouseUserDOS)) {
                String areaCode = comMngStructHouseUserDOS.get(0).getAreaCode();
                ComMngStructHouseDO comMngStructHouseDO1 = comMngStructHouseDAO.selectOne(new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, areaCode));
                ComMngStructHouseDO comMngStructHouseDO1 = comMngStructHouseDAO.selectOne(
                    new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, areaCode));
                String houseName = comMngStructHouseDO1.getHouseName();
                comMngStructHouseUserDOS.forEach(comMngStructHouseUserDO -> {
                    ComMngStructHouseDO comMngStructHouseDO = comMngStructHouseDAO.selectOne(new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, comMngStructHouseUserDO.getHouseCode()));
                    ComMngStructHouseDO comMngStructHouseDO =
                        comMngStructHouseDAO.selectOne(new QueryWrapper<ComMngStructHouseDO>().lambda()
                            .eq(ComMngStructHouseDO::getHouseCode, comMngStructHouseUserDO.getHouseCode()));
                    ComMngStructHouseVO comMngStructHouseVO = new ComMngStructHouseVO();
                    BeanUtils.copyProperties(comMngStructHouseDO, comMngStructHouseVO);
                    comMngStructHouseVO.setIdentity(comMngStructHouseUserDO.getIdentity());
@@ -74,7 +83,8 @@
            Map<String,Object> map=comMngStructHouseUserDAO.selectHouseCode(userId);
            String houseCode = map.get("house_code").toString();
            String isRent = map.get("is_rent").toString();
            ComMngStructHouseDO comMngStructHouseDO = comMngStructHouseDAO.selectOne(new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, houseCode));
            ComMngStructHouseDO comMngStructHouseDO = comMngStructHouseDAO.selectOne(
                new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, houseCode));
            ComMngStructHouseVO comMngStructHouseVO = new ComMngStructHouseVO();
            BeanUtils.copyProperties(comMngStructHouseDO, comMngStructHouseVO);
            if (isRent.equals("1")) {
@@ -90,13 +100,15 @@
    /**
     * 小区批量建房
     *
     * @param batchhouseVO 建房参数
     * @param batchhouseVO
     *            建房参数
     * @return 建房结果
     */
    @Override
    public R batchHouse(BatchhouseVO batchhouseVO) {
        String areaCode = batchhouseVO.getAreaCode();
        Integer integer = comMngStructHouseDAO.selectCount(new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getParentCode, areaCode));
        Integer integer = comMngStructHouseDAO.selectCount(
            new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getParentCode, areaCode));
        if (null != integer && integer.intValue() > 0) {
            return R.fail("小区房屋已经存在,删除后批量创建或者使用编辑功能单独创建");
        }
@@ -106,12 +118,15 @@
    /**
     * 批量添加地址功能提取出一个公共方法
     * @param batchhouseVO 批量添加小区、同级(楼栋、单元、楼层、房间)
     *
     * @param batchhouseVO
     *            批量添加小区、同级(楼栋、单元、楼层、房间)
     */
    @Transactional(rollbackFor = Exception.class)
    void batchSaveHouse(BatchhouseVO batchhouseVO) {
        String areaCode = batchhouseVO.getAreaCode();
        ComMngStructHouseDO comMngStructHouseDO = comMngStructHouseDAO.selectOne(new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, areaCode));
        ComMngStructHouseDO comMngStructHouseDO = comMngStructHouseDAO.selectOne(
            new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, areaCode));
        String areaName = comMngStructHouseDO.getHouseName();//小区地址
        int buildingBegin = batchhouseVO.getBuildingBegin().intValue();
        int buildingEnd = batchhouseVO.getBuildingEnd().intValue();
@@ -131,7 +146,9 @@
        long floorCode = 310000;
        long doorCode = 210000;
        Integer type = batchhouseVO.getType();
        ComMngStructHouseDO comMngStructHouseDOParent = comMngStructHouseDAO.selectOne(new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, batchhouseVO.getParentCode()));
        ComMngStructHouseDO comMngStructHouseDOParent =
            comMngStructHouseDAO.selectOne(new QueryWrapper<ComMngStructHouseDO>().lambda()
                .eq(ComMngStructHouseDO::getHouseCode, batchhouseVO.getParentCode()));
//        2楼栋  3 单元 4楼层  5门牌号
        for (int i = buildingBegin; i <= buildingEnd; i++) {//楼栋
            ComMngStructHouseDO comMngStructHouseDO1 = new ComMngStructHouseDO();
@@ -238,7 +255,8 @@
                                }
                            }
                        }
                        comMngStructHouseDO4.setHouseName(comMngStructHouseDO3.getHouseName() + floorName + ruleConnector + doorName);
                        comMngStructHouseDO4
                            .setHouseName(comMngStructHouseDO3.getHouseName() + floorName + ruleConnector + doorName);
                        comMngStructHouseDO4.setHouseCode(comMngStructHouseDO3.getHouseCode() + (doorCode + num));
                        comMngStructHouseDO4.setType(5);
                        comMngStructHouseDO4.setParentCode(comMngStructHouseDO3.getHouseCode());
@@ -252,8 +270,10 @@
        if (b) {
            log.info("batchhouse----楼栋数一共【{}】",buildingEnd-buildingBegin+1);
            log.info("batchhouse----单元数一共【{}】",(unitEnd-unitBegin+1)*(buildingEnd-buildingBegin+1));
            log.info("batchhouse----楼层数一共【{}】",(unitEnd-unitBegin+1)*(buildingEnd-buildingBegin+1)*(floorEnd-floorBegin+1));
            log.info("batchhouse----房间数量一共【{}】",(unitEnd-unitBegin+1)*(buildingEnd-buildingBegin+1)*(floorEnd-floorBegin+1)*(doorEnd-doorBegin+1));
            log.info("batchhouse----楼层数一共【{}】",
                (unitEnd - unitBegin + 1) * (buildingEnd - buildingBegin + 1) * (floorEnd - floorBegin + 1));
            log.info("batchhouse----房间数量一共【{}】", (unitEnd - unitBegin + 1) * (buildingEnd - buildingBegin + 1)
                * (floorEnd - floorBegin + 1) * (doorEnd - doorBegin + 1));
            log.info("batchhouse----批量新增房屋地址数量【{}】", comMngStructHouseDOList.size());
        }
    }
@@ -261,7 +281,8 @@
    /**
     * 新增小区地址
     *
     * @param comMngStructAreaVO 小区地址
     * @param comMngStructAreaVO
     *            小区地址
     */
    @Override
    public R addHouseArea(ComMngStructAreaVO comMngStructAreaVO) {
@@ -288,7 +309,8 @@
    /**
     * 先删除小区小面所有房屋、删除用户和小区房屋的绑定关系
     *
     * @param comMngStructAreaVO 小区地址编码
     * @param comMngStructAreaVO
     *            小区地址编码
     * @return 删除结果
     */
    @Override
@@ -307,13 +329,15 @@
    /**
     * 展示下级建筑
     *
     * @param houseCode 房屋编号
     * @param houseCode
     *            房屋编号
     * @return 下级建筑列表
     */
    @Override
    public R listSubordinatebuilding(String houseCode) {
        List<ComMngStructHouseVO> comMngStructHouseVOS = new ArrayList<>();
        List<ComMngStructHouseDO> comMngStructHouseDOList = comMngStructHouseDAO.selectList(new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getParentCode, houseCode));
        List<ComMngStructHouseDO> comMngStructHouseDOList = comMngStructHouseDAO.selectList(
            new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getParentCode, houseCode));
        if (!ObjectUtils.isEmpty(comMngStructHouseDOList)) {
            comMngStructHouseDOList.forEach(comMngStructHouseDO -> {
                ComMngStructHouseVO comMngStructHouseVO = new ComMngStructHouseVO();
@@ -323,8 +347,10 @@
                if (type == 5) {
                    List<LoginUserInfoVO> loginUserInfoVOS = comMngStructHouseUserDAO.selectListHouseUser(houseCode1);
                    if (!ObjectUtils.isEmpty(loginUserInfoVOS)) {
                        String names = loginUserInfoVOS.stream().map(loginUserInfoVO -> loginUserInfoVO.getName()).collect(Collectors.joining(","));
                        String phones = loginUserInfoVOS.stream().map(loginUserInfoVO -> loginUserInfoVO.getPhone()).collect(Collectors.joining(","));
                        String names = loginUserInfoVOS.stream().map(loginUserInfoVO -> loginUserInfoVO.getName())
                            .collect(Collectors.joining(","));
                        String phones = loginUserInfoVOS.stream().map(loginUserInfoVO -> loginUserInfoVO.getPhone())
                            .collect(Collectors.joining(","));
                        comMngStructHouseVO.setNames(names);
                        comMngStructHouseVO.setPhones(phones);
                    }
@@ -339,8 +365,10 @@
    /**
     * 添加同级地址
     *
     * @param batchhouseVO 添加参数
     * @param comMngStructAreaDO  小区信息-规则
     * @param batchhouseVO
     *            添加参数
     * @param comMngStructAreaDO
     *            小区信息-规则
     * @return 添加结果
     */
    @Override
@@ -350,10 +378,13 @@
        String roleFloor = comMngStructAreaDO.getRoleFloor();
        int type = batchhouseVO.getType().intValue();
        String parentCode1 = batchhouseVO.getParentCode();
        List<ComMngStructHouseDO> comMngStructHouseDOList = comMngStructHouseDAO.selectList(new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getType, type).eq(ComMngStructHouseDO::getParentCode, parentCode1));
        List<ComMngStructHouseDO> comMngStructHouseDOList =
            comMngStructHouseDAO.selectList(new QueryWrapper<ComMngStructHouseDO>().lambda()
                .eq(ComMngStructHouseDO::getType, type).eq(ComMngStructHouseDO::getParentCode, parentCode1));
        List<String> stringList = new ArrayList<>();
        if (!ObjectUtils.isEmpty(comMngStructHouseDOList)) {
            stringList = comMngStructHouseDOList.stream().map(comMngStructHouseDO -> comMngStructHouseDO.getHouseName()).collect(Collectors.toList());
            stringList = comMngStructHouseDOList.stream().map(comMngStructHouseDO -> comMngStructHouseDO.getHouseName())
                .collect(Collectors.toList());
        }
        int begin = 0, end = 0;
        String typeName = "";
@@ -411,14 +442,16 @@
    /**
     * 编辑地址
     *
     * @param comMngStructHouseVO 编辑内容
     * @param comMngStructHouseVO
     *            编辑内容
     * @return 编辑结果
     */
    @Override
    public R putHouse(ComMngStructHouseVO comMngStructHouseVO) {
        ComMngStructHouseDO comMngStructHouseDO = new ComMngStructHouseDO();
        comMngStructHouseDO.setSquare(comMngStructHouseVO.getSquare());
        int update = comMngStructHouseDAO.update(comMngStructHouseDO, new UpdateWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, comMngStructHouseVO.getHouseCode()));
        int update = comMngStructHouseDAO.update(comMngStructHouseDO, new UpdateWrapper<ComMngStructHouseDO>().lambda()
            .eq(ComMngStructHouseDO::getHouseCode, comMngStructHouseVO.getHouseCode()));
        if (update > 0) {
            return R.ok();
        }
@@ -428,7 +461,8 @@
    /**
     * 删除地址
     *
     * @param comMngStructHouseVO 删除指定地址和所有下级
     * @param comMngStructHouseVO
     *            删除指定地址和所有下级
     * @return 删除结果
     */
    @Override
@@ -444,15 +478,18 @@
    /**
     * 房屋地址下拉列表
     *
     * @param parentCode 父级编码
     * @param parentCode
     *            父级编码
     * @return 下级列表
     */
    @Override
    public R putVolunteerPhone(String parentCode) {
        List<ComMngStructHouseVO> comMngStructHouseVOS = new ArrayList<>();
        ComMngStructHouseDO comMngStructHouseDO1 = comMngStructHouseDAO.selectOne(new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, parentCode));
        ComMngStructHouseDO comMngStructHouseDO1 = comMngStructHouseDAO.selectOne(
            new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, parentCode));
        String houseName = comMngStructHouseDO1.getHouseName();
        List<ComMngStructHouseDO> comMngStructHouseDOList = comMngStructHouseDAO.selectList(new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getParentCode, parentCode));
        List<ComMngStructHouseDO> comMngStructHouseDOList = comMngStructHouseDAO.selectList(
            new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getParentCode, parentCode));
        if (!ObjectUtils.isEmpty(comMngStructHouseDOList)) {
            comMngStructHouseDOList.forEach(comMngStructHouseDO -> {
                ComMngStructHouseVO comMngStructHouseVO = new ComMngStructHouseVO();
@@ -467,7 +504,8 @@
    /**
     * 新增房屋
     *
     * @param comMngStructHouseVO 房屋信息
     * @param comMngStructHouseVO
     *            房屋信息
     * @return 新增结果
     */
    @Override
@@ -475,7 +513,8 @@
    public R addHouses(ComMngStructHouseVO comMngStructHouseVO) {
        String houseCode = comMngStructHouseVO.getHouseCode();
        Integer states1 = comMngStructHouseVO.getState();
        ComMngStructHouseDO comMngStructHouseDO1 = comMngStructHouseDAO.selectOne(new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, houseCode));
        ComMngStructHouseDO comMngStructHouseDO1 = comMngStructHouseDAO.selectOne(
            new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, houseCode));
        if (ObjectUtils.isEmpty(comMngStructHouseDO1)) {
            return R.fail("房屋不存在");
        }
@@ -493,7 +532,10 @@
        if (update == 0) {
            return R.fail("修改房屋面积、状态失败");
        }
        ComMngStructHouseUserDO comMngStructHouseUserDO1 = comMngStructHouseUserDAO.selectOne(new QueryWrapper<ComMngStructHouseUserDO>().lambda().eq(ComMngStructHouseUserDO::getUserId, comMngStructHouseVO.getUserId()).eq(ComMngStructHouseUserDO::getHouseCode, comMngStructHouseVO.getHouseCode()));
        ComMngStructHouseUserDO comMngStructHouseUserDO1 =
            comMngStructHouseUserDAO.selectOne(new QueryWrapper<ComMngStructHouseUserDO>().lambda()
                .eq(ComMngStructHouseUserDO::getUserId, comMngStructHouseVO.getUserId())
                .eq(ComMngStructHouseUserDO::getHouseCode, comMngStructHouseVO.getHouseCode()));
        if (!ObjectUtils.isEmpty(comMngStructHouseUserDO1)) {
            return R.ok();
        }
@@ -518,6 +560,5 @@
        List<ExcelHouseDTO>  houseDTOS = comMngStructHouseDAO.houseExport(comMngStructAreaDO.getAreaCode());
        return R.ok(houseDTOS);
    }
}