wuxw
2024-09-12 50487791234ff79775ee7a6c74b35ee8d9bb90c8
service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java
@@ -1,23 +1,35 @@
package com.java110.community.smo.impl;
import com.java110.core.base.smo.BaseServiceSMO;
import com.java110.core.factory.AuthenticationFactory;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.core.log.LoggerFactory;
import com.java110.dto.FloorDto;
import com.java110.dto.RoomDto;
import com.java110.dto.UnitDto;
import com.java110.dto.community.CommunityDto;
import com.java110.dto.floor.FloorDto;
import com.java110.dto.room.RoomDto;
import com.java110.dto.unit.UnitDto;
import com.java110.dto.owner.OwnerDto;
import com.java110.dto.owner.OwnerRoomRelDto;
import com.java110.entity.assetImport.ImportOwnerRoomDto;
import com.java110.dto.importData.ImportOwnerRoomDto;
import com.java110.intf.community.*;
import com.java110.intf.user.IOwnerAppUserV1InnerServiceSMO;
import com.java110.intf.user.IOwnerRoomRelV1InnerServiceSMO;
import com.java110.intf.user.IOwnerV1InnerServiceSMO;
import com.java110.intf.user.IUserV1InnerServiceSMO;
import com.java110.po.floor.FloorPo;
import com.java110.po.owner.OwnerAppUserPo;
import com.java110.po.owner.OwnerPo;
import com.java110.po.owner.OwnerRoomRelPo;
import com.java110.po.room.RoomPo;
import com.java110.po.unit.UnitPo;
import com.java110.po.user.UserPo;
import com.java110.utils.cache.MappingCache;
import com.java110.utils.constant.MappingConstant;
import com.java110.utils.constant.UserLevelConstant;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.Assert;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.ListUtil;
import com.java110.utils.util.StringUtil;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@@ -50,6 +62,15 @@
    @Autowired
    private IOwnerRoomRelV1InnerServiceSMO ownerRoomRelV1InnerServiceSMOImpl;
    @Autowired
    private IOwnerAppUserV1InnerServiceSMO ownerAppUserV1InnerServiceSMOImpl;
    @Autowired
    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
    @Autowired
    private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
    @Override
    public int saveOwnerRooms(@RequestBody List<ImportOwnerRoomDto> importOwnerRoomDtos) {
@@ -66,6 +87,21 @@
        return successCount;
    }
    @Override
    public int saveOwnerRoom(@RequestBody ImportOwnerRoomDto importOwnerRoomDto) {
        if (importOwnerRoomDto == null) {
            return 0;
        }
        List<ImportOwnerRoomDto> importOwnerRoomDtosed = new ArrayList<>();
        // 1.0 查看 楼栋是否存在
        return doSaveOwnerRooms(importOwnerRoomDto, importOwnerRoomDtosed);
    }
    /**
@@ -130,7 +166,7 @@
        OwnerPo ownerPo = null;
        int flag = 0;
        if (ownerDtos == null || ownerDtos.size() < 1) {
        if (ListUtil.isNull(ownerDtos)) {
            ownerPo = new OwnerPo();
            ownerPo.setState(OwnerDto.STATE_FINISH);
            ownerPo.setOwnerFlag(OwnerDto.OWNER_FLAG_TRUE);
@@ -146,6 +182,10 @@
            ownerPo.setMemberId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId));
            ownerPo.setRemark("房产导入");
            ownerPo.setUserId(importOwnerRoomDto.getUserId());
            ownerPo.setPersonType(importOwnerRoomDto.getPersonType());
            ownerPo.setPersonRole(importOwnerRoomDto.getPersonRole());
            ownerPo.setConcactPerson(importOwnerRoomDto.getConcactPerson());
            ownerPo.setConcactLink(importOwnerRoomDto.getConcactLink());
            flag = ownerV1InnerServiceSMOImpl.saveOwner(ownerPo);
            if (flag < 1) {
@@ -167,6 +207,10 @@
            ownerPo.setMemberId(ownerDtos.get(0).getMemberId());
            ownerPo.setRemark("房产导入");
            ownerPo.setUserId(importOwnerRoomDto.getUserId());
            ownerPo.setPersonType(importOwnerRoomDto.getPersonType());
            ownerPo.setPersonRole(importOwnerRoomDto.getPersonRole());
            ownerPo.setConcactPerson(importOwnerRoomDto.getConcactPerson());
            ownerPo.setConcactLink(importOwnerRoomDto.getConcactLink());
            flag = ownerV1InnerServiceSMOImpl.updateOwner(ownerPo);
            if (flag < 1) {
                throw new IllegalArgumentException("导入业主失败");
@@ -188,53 +232,13 @@
        ownerDto.setLink(importOwnerRoomDto.getTel());
        ownerDto.setOwnerTypeCd(importOwnerRoomDto.getOwnerTypeCd());
        List<OwnerDto> ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
        OwnerPo ownerPo = null;
        String ownerId = "";
        int flag = 0;
        if (ownerDtos == null || ownerDtos.size() < 1) {
            ownerPo = new OwnerPo();
            ownerPo.setState(OwnerDto.STATE_FINISH);
            ownerPo.setOwnerFlag(OwnerDto.OWNER_FLAG_TRUE);
            ownerPo.setbId("-1");
            ownerPo.setOwnerTypeCd(importOwnerRoomDto.getOwnerTypeCd());
            ownerPo.setCommunityId(importOwnerRoomDto.getCommunityId());
            ownerPo.setOwnerId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId));
            ownerPo.setName(importOwnerRoomDto.getOwnerName());
            ownerPo.setIdCard(importOwnerRoomDto.getIdCard());
            ownerPo.setAge(importOwnerRoomDto.getAge());
            ownerPo.setSex(importOwnerRoomDto.getSex());
            ownerPo.setLink(importOwnerRoomDto.getTel());
            ownerPo.setMemberId(ownerPo.getOwnerId());
            ownerPo.setRemark("房产导入");
            ownerPo.setUserId(importOwnerRoomDto.getUserId());
            flag = ownerV1InnerServiceSMOImpl.saveOwner(ownerPo);
            if (flag < 1) {
                throw new IllegalArgumentException("导入业主失败");
            }
            ownerId = ownerPo.getOwnerId();
        if (ListUtil.isNull(ownerDtos)) {
            ownerId = doSaveOwnerInfo(importOwnerRoomDto);
        } else {
            ownerId = ownerDtos.get(0).getOwnerId();
            ownerPo = new OwnerPo();
            ownerPo.setState(OwnerDto.STATE_FINISH);
            ownerPo.setOwnerFlag(OwnerDto.OWNER_FLAG_TRUE);
            ownerPo.setbId("-1");
            ownerPo.setOwnerTypeCd(importOwnerRoomDto.getOwnerTypeCd());
            ownerPo.setCommunityId(importOwnerRoomDto.getCommunityId());
            ownerPo.setOwnerId(ownerId);
            ownerPo.setName(importOwnerRoomDto.getOwnerName());
            ownerPo.setIdCard(importOwnerRoomDto.getIdCard());
            ownerPo.setAge(importOwnerRoomDto.getAge());
            ownerPo.setSex(importOwnerRoomDto.getSex());
            ownerPo.setLink(importOwnerRoomDto.getTel());
            ownerPo.setMemberId(ownerPo.getOwnerId());
            ownerPo.setRemark("房产导入");
            ownerPo.setUserId(importOwnerRoomDto.getUserId());
            flag = ownerV1InnerServiceSMOImpl.updateOwner(ownerPo);
            if (flag < 1) {
                throw new IllegalArgumentException("导入业主失败");
            }
            doUpdateOwnerInfo(importOwnerRoomDto, ownerId);
        }
        // 查询房屋和业主是否有关系
        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
@@ -242,7 +246,7 @@
        ownerRoomRelDto.setRoomId(roomId);
        ownerRoomRelDto.setOwnerId(ownerId);
        List<OwnerRoomRelDto> roomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
        if (roomRelDtos != null && roomRelDtos.size() > 0) {
        if (!ListUtil.isNull(roomRelDtos)) {
            return;
        }
@@ -260,6 +264,110 @@
        if (flag < 1) {
            throw new IllegalArgumentException("导入业主房屋关系失败");
        }
    }
    private void doUpdateOwnerInfo(ImportOwnerRoomDto importOwnerRoomDto, String ownerId) {
        OwnerPo ownerPo;
        int flag;
        ownerPo = new OwnerPo();
        ownerPo.setState(OwnerDto.STATE_FINISH);
        ownerPo.setOwnerFlag(OwnerDto.OWNER_FLAG_TRUE);
        ownerPo.setbId("-1");
        ownerPo.setOwnerTypeCd(importOwnerRoomDto.getOwnerTypeCd());
        ownerPo.setCommunityId(importOwnerRoomDto.getCommunityId());
        ownerPo.setOwnerId(ownerId);
        ownerPo.setName(importOwnerRoomDto.getOwnerName());
        ownerPo.setIdCard(importOwnerRoomDto.getIdCard());
        ownerPo.setAge(importOwnerRoomDto.getAge());
        ownerPo.setSex(importOwnerRoomDto.getSex());
        ownerPo.setLink(importOwnerRoomDto.getTel());
        ownerPo.setMemberId(ownerPo.getOwnerId());
        ownerPo.setRemark("房产导入");
        ownerPo.setUserId(importOwnerRoomDto.getUserId());
        ownerPo.setPersonType(importOwnerRoomDto.getPersonType());
        ownerPo.setPersonRole(importOwnerRoomDto.getPersonRole());
        ownerPo.setConcactPerson(importOwnerRoomDto.getConcactPerson());
        ownerPo.setConcactLink(importOwnerRoomDto.getConcactLink());
        flag = ownerV1InnerServiceSMOImpl.updateOwner(ownerPo);
        if (flag < 1) {
            throw new IllegalArgumentException("导入业主失败");
        }
    }
    private String doSaveOwnerInfo(ImportOwnerRoomDto importOwnerRoomDto) {
        int flag;
        OwnerPo ownerPo = new OwnerPo();
        ownerPo.setState(OwnerDto.STATE_FINISH);
        ownerPo.setOwnerFlag(OwnerDto.OWNER_FLAG_TRUE);
        ownerPo.setbId("-1");
        ownerPo.setOwnerTypeCd(importOwnerRoomDto.getOwnerTypeCd());
        ownerPo.setCommunityId(importOwnerRoomDto.getCommunityId());
        ownerPo.setOwnerId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId));
        ownerPo.setName(importOwnerRoomDto.getOwnerName());
        ownerPo.setIdCard(importOwnerRoomDto.getIdCard());
        ownerPo.setAge(importOwnerRoomDto.getAge());
        ownerPo.setSex(importOwnerRoomDto.getSex());
        ownerPo.setLink(importOwnerRoomDto.getTel());
        ownerPo.setMemberId(ownerPo.getOwnerId());
        ownerPo.setRemark("房产导入");
        ownerPo.setUserId(importOwnerRoomDto.getUserId());
        ownerPo.setPersonType(importOwnerRoomDto.getPersonType());
        ownerPo.setPersonRole(importOwnerRoomDto.getPersonRole());
        ownerPo.setConcactPerson(importOwnerRoomDto.getConcactPerson());
        ownerPo.setConcactLink(importOwnerRoomDto.getConcactLink());
        flag = ownerV1InnerServiceSMOImpl.saveOwner(ownerPo);
        if (flag < 1) {
            throw new IllegalArgumentException("导入业主失败");
        }
        String autoUser = MappingCache.getValue(MappingConstant.DOMAIN_SYSTEM_SWITCH, "AUTO_GENERATOR_OWNER_USER");
        if (!"ON".equals(autoUser)) {
            return ownerPo.getOwnerId();
        }
        CommunityDto communityDto = new CommunityDto();
        communityDto.setCommunityId(ownerPo.getCommunityId());
        List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto);
        Assert.listNotNull(communityDtos, "未包含小区信息");
        CommunityDto tmpCommunityDto = communityDtos.get(0);
        UserPo userPo = new UserPo();
        userPo.setUserId(GenerateCodeFactory.getUserId());
        userPo.setName(ownerPo.getName());
        userPo.setTel(ownerPo.getLink());
        userPo.setPassword(AuthenticationFactory.passwdMd5(ownerPo.getLink()));
        userPo.setLevelCd(UserLevelConstant.USER_LEVEL_ORDINARY);
        userPo.setAge(ownerPo.getAge());
        userPo.setAddress(ownerPo.getAddress());
        userPo.setSex(ownerPo.getSex());
        flag = userV1InnerServiceSMOImpl.saveUser(userPo);
        if (flag < 1) {
            throw new CmdException("注册失败");
        }
        OwnerAppUserPo ownerAppUserPo = new OwnerAppUserPo();
        //状态类型,10000 审核中,12000 审核成功,13000 审核失败
        ownerAppUserPo.setState("12000");
        ownerAppUserPo.setAppTypeCd("10010");
        ownerAppUserPo.setAppUserId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_appUserId));
        ownerAppUserPo.setMemberId(ownerPo.getMemberId());
        ownerAppUserPo.setCommunityName(tmpCommunityDto.getName());
        ownerAppUserPo.setCommunityId(ownerPo.getCommunityId());
        ownerAppUserPo.setAppUserName(ownerPo.getName());
        ownerAppUserPo.setIdCard(ownerPo.getIdCard());
        ownerAppUserPo.setAppType("WECHAT");
        ownerAppUserPo.setLink(ownerPo.getLink());
        ownerAppUserPo.setUserId(userPo.getUserId());
        ownerAppUserPo.setOpenId("-1");
        ownerAppUserPo.setOwnerTypeCd(ownerPo.getOwnerTypeCd());
        flag = ownerAppUserV1InnerServiceSMOImpl.saveOwnerAppUser(ownerAppUserPo);
        if (flag < 1) {
            throw new CmdException("添加用户业主关系失败");
        }
        return ownerPo.getOwnerId();
    }
    private String doSaveRoom(ImportOwnerRoomDto importOwnerRoomDto, String unitId) {
@@ -398,7 +506,7 @@
        FloorPo floorPo = null;
        String floorId = "";
        int seq = 1;
        if(StringUtil.isNumber(importOwnerRoomDto.getFloorNum())){
        if (StringUtil.isNumber(importOwnerRoomDto.getFloorNum())) {
            seq = Integer.parseInt(importOwnerRoomDto.getFloorNum());
        }
@@ -410,7 +518,7 @@
            floorPo.setFloorArea("1");
            floorPo.setFloorId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_floorId));
            floorPo.setFloorNum(importOwnerRoomDto.getFloorNum());
            floorPo.setName(importOwnerRoomDto.getFloorNum()+"栋");
            floorPo.setName(importOwnerRoomDto.getFloorNum() + "栋");
            floorPo.setRemark("房产导入");
            floorPo.setUserId(importOwnerRoomDto.getUserId());
            floorPo.setSeq(seq);
@@ -430,7 +538,7 @@
                //floorPo.setFloorArea("1");
                floorPo.setFloorId(floorId);
                floorPo.setFloorNum(importOwnerRoomDto.getFloorNum());
                floorPo.setName(importOwnerRoomDto.getFloorNum()+"栋");
                floorPo.setName(importOwnerRoomDto.getFloorNum() + "栋");
                floorPo.setRemark("房产导入");
                floorPo.setUserId(importOwnerRoomDto.getUserId());
                flag = floorV1InnerServiceSMOImpl.updateFloor(floorPo);