From 0b04f664887c73e90bf684a4e69c0fdbfe26349d Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 29 三月 2023 13:35:20 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java |  223 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 204 insertions(+), 19 deletions(-)

diff --git a/service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java b/service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java
index fc42ec5..08b689c 100644
--- a/service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java
+++ b/service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java
@@ -7,14 +7,17 @@
 import com.java110.dto.RoomDto;
 import com.java110.dto.UnitDto;
 import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
 import com.java110.entity.assetImport.ImportOwnerRoomDto;
-import com.java110.intf.community.IFloorV1InnerServiceSMO;
-import com.java110.intf.community.IImportOwnerRoomInnerServiceSMO;
-import com.java110.intf.community.IRoomV1InnerServiceSMO;
-import com.java110.intf.community.IUnitV1InnerServiceSMO;
+import com.java110.intf.community.*;
+import com.java110.intf.user.IOwnerRoomRelV1InnerServiceSMO;
+import com.java110.intf.user.IOwnerV1InnerServiceSMO;
 import com.java110.po.floor.FloorPo;
+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.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -29,7 +32,7 @@
  */
 @RestController
 public class ImportOwnerRoomInnerServiceSMOImpl extends BaseServiceSMO implements IImportOwnerRoomInnerServiceSMO {
-    private static Logger logger = LoggerFactory.getLogger(CommunityServiceSMOImpl.class);
+    private static Logger logger = LoggerFactory.getLogger(ImportOwnerRoomInnerServiceSMOImpl.class);
 
 
     @Autowired
@@ -42,6 +45,12 @@
     private IRoomV1InnerServiceSMO roomV1InnerServiceSMOImpl;
 
     @Autowired
+    private IOwnerV1InnerServiceSMO ownerV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelV1InnerServiceSMO ownerRoomRelV1InnerServiceSMOImpl;
+
+    @Override
     public int saveOwnerRooms(@RequestBody List<ImportOwnerRoomDto> importOwnerRoomDtos) {
 
         int successCount = 0;
@@ -78,8 +87,179 @@
         //3.0 淇濆瓨 鎴垮眿
         String roomId = doSaveRoom(importOwnerRoomDto, unitId);
 
+        //娌℃湁涓氫富
+        if (StringUtil.isEmpty(importOwnerRoomDto.getOwnerName())) {
+            return 1;
+        }
+
+        //4.0 淇濆瓨涓氫富
+        if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(importOwnerRoomDto.getOwnerTypeCd())) {
+            doSaveOwner(importOwnerRoomDto, roomId);
+        } else {
+            doSaveOwnerMember(importOwnerRoomDto, roomId);
+        }
+
         return 1;
 
+    }
+
+    /**
+     * 淇濆瓨涓氫富鎴愬憳
+     *
+     * @param importOwnerRoomDto
+     * @param roomId
+     */
+    private void doSaveOwnerMember(ImportOwnerRoomDto importOwnerRoomDto, String roomId) {
+
+        // 鏌ヨ鎴垮眿鍜屼笟涓绘槸鍚︽湁鍏崇郴
+        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+        ownerRoomRelDto.setCommunityId(importOwnerRoomDto.getCommunityId());
+        ownerRoomRelDto.setRoomId(roomId);
+        List<OwnerRoomRelDto> roomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+        if (roomRelDtos == null || roomRelDtos.size() < 1) {
+            throw new IllegalArgumentException(importOwnerRoomDto.getOwnerName() + "鎴愬憳鏈壘鍒板搴斾笟涓讳俊鎭�");
+        }
+
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setCommunityId(importOwnerRoomDto.getCommunityId());
+        ownerDto.setName(importOwnerRoomDto.getOwnerName());
+        ownerDto.setLink(importOwnerRoomDto.getTel());
+        ownerDto.setOwnerId(roomRelDtos.get(0).getOwnerId());
+        ownerDto.setOwnerTypeCd(importOwnerRoomDto.getOwnerTypeCd());
+        List<OwnerDto> ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
+        OwnerPo ownerPo = null;
+
+        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(roomRelDtos.get(0).getOwnerId());
+            ownerPo.setName(importOwnerRoomDto.getOwnerName());
+            ownerPo.setIdCard(importOwnerRoomDto.getIdCard());
+            ownerPo.setAge(importOwnerRoomDto.getAge());
+            ownerPo.setSex(importOwnerRoomDto.getSex());
+            ownerPo.setLink(importOwnerRoomDto.getTel());
+            ownerPo.setMemberId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_ownerId));
+            ownerPo.setRemark("鎴夸骇瀵煎叆");
+            ownerPo.setUserId(importOwnerRoomDto.getUserId());
+            flag = ownerV1InnerServiceSMOImpl.saveOwner(ownerPo);
+
+            if (flag < 1) {
+                throw new IllegalArgumentException("瀵煎叆涓氫富澶辫触");
+            }
+        } else {
+            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(ownerDtos.get(0).getOwnerId());
+            ownerPo.setName(importOwnerRoomDto.getOwnerName());
+            ownerPo.setIdCard(importOwnerRoomDto.getIdCard());
+            ownerPo.setAge(importOwnerRoomDto.getAge());
+            ownerPo.setSex(importOwnerRoomDto.getSex());
+            ownerPo.setLink(importOwnerRoomDto.getTel());
+            ownerPo.setMemberId(ownerDtos.get(0).getMemberId());
+            ownerPo.setRemark("鎴夸骇瀵煎叆");
+            ownerPo.setUserId(importOwnerRoomDto.getUserId());
+            flag = ownerV1InnerServiceSMOImpl.updateOwner(ownerPo);
+            if (flag < 1) {
+                throw new IllegalArgumentException("瀵煎叆涓氫富澶辫触");
+            }
+        }
+    }
+
+    /**
+     * 淇濆瓨涓氫富
+     *
+     * @param importOwnerRoomDto
+     * @param roomId
+     */
+    private void doSaveOwner(ImportOwnerRoomDto importOwnerRoomDto, String roomId) {
+
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setCommunityId(importOwnerRoomDto.getCommunityId());
+        ownerDto.setName(importOwnerRoomDto.getOwnerName());
+        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();
+        } 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("瀵煎叆涓氫富澶辫触");
+            }
+        }
+        // 鏌ヨ鎴垮眿鍜屼笟涓绘槸鍚︽湁鍏崇郴
+        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+        ownerRoomRelDto.setCommunityId(importOwnerRoomDto.getCommunityId());
+        ownerRoomRelDto.setRoomId(roomId);
+        ownerRoomRelDto.setOwnerId(ownerId);
+        List<OwnerRoomRelDto> roomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+        if (roomRelDtos != null && roomRelDtos.size() > 0) {
+            return;
+        }
+
+        OwnerRoomRelPo ownerRoomRelPo = new OwnerRoomRelPo();
+        ownerRoomRelPo.setUserId(importOwnerRoomDto.getUserId());
+        ownerRoomRelPo.setbId("-1");
+        ownerRoomRelPo.setRelId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_relId));
+        ownerRoomRelPo.setState(importOwnerRoomDto.getRoomState());
+        ownerRoomRelPo.setRoomId(roomId);
+        ownerRoomRelPo.setOwnerId(ownerId);
+        ownerRoomRelPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B));
+        ownerRoomRelPo.setEndTime(DateUtil.LAST_TIME);
+
+        flag = ownerRoomRelV1InnerServiceSMOImpl.saveOwnerRoomRel(ownerRoomRelPo);
+        if (flag < 1) {
+            throw new IllegalArgumentException("瀵煎叆涓氫富鎴垮眿鍏崇郴澶辫触");
+        }
     }
 
     private String doSaveRoom(ImportOwnerRoomDto importOwnerRoomDto, String unitId) {
@@ -94,7 +274,8 @@
         int flag = 0;
         if (roomDtos == null || roomDtos.size() < 1) {
             roomPo = new RoomPo();
-            roomPo.setState(StringUtil.isEmpty(importOwnerRoomDto.getOwnerName()) ? RoomDto.STATE_FREE : RoomDto.STATE_SELL);
+            //roomPo.setState(StringUtil.isEmpty(importOwnerRoomDto.getOwnerName()) ? RoomDto.STATE_FREE : RoomDto.STATE_SELL);
+            roomPo.setState(importOwnerRoomDto.getRoomState());
             roomPo.setRoomId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_roomId));
             roomPo.setApartment(importOwnerRoomDto.getSection());
             roomPo.setSection("1");
@@ -109,7 +290,7 @@
             roomPo.setRoomType("0".equals(importOwnerRoomDto.getUnitNum()) ? RoomDto.ROOM_TYPE_SHOPS : RoomDto.ROOM_TYPE_ROOM);
             roomPo.setUnitId(unitId);
             roomPo.setRemark("鎴夸骇瀵煎叆");
-            roomPo.setUserId("-1");
+            roomPo.setUserId(importOwnerRoomDto.getUserId());
             flag = roomV1InnerServiceSMOImpl.saveRoom(roomPo);
 
             if (flag < 1) {
@@ -119,9 +300,9 @@
             roomId = roomPo.getRoomId();
         } else {
             roomId = roomDtos.get(0).getRoomId();
-            if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(importOwnerRoomDto.getOwnerTypeCd())) {
+            if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(importOwnerRoomDto.getOwnerTypeCd()) || StringUtil.isEmpty(importOwnerRoomDto.getOwnerName())) {
                 roomPo = new RoomPo();
-                roomPo.setState(StringUtil.isEmpty(importOwnerRoomDto.getOwnerName()) ? RoomDto.STATE_FREE : RoomDto.STATE_SELL);
+                roomPo.setState(importOwnerRoomDto.getRoomState());
                 roomPo.setRoomId(roomId);
                 roomPo.setApartment(importOwnerRoomDto.getSection());
                 roomPo.setSection("1");
@@ -136,7 +317,7 @@
                 roomPo.setRoomType("0".equals(importOwnerRoomDto.getUnitNum()) ? RoomDto.ROOM_TYPE_SHOPS : RoomDto.ROOM_TYPE_ROOM);
                 roomPo.setUnitId(unitId);
                 roomPo.setRemark("鎴夸骇瀵煎叆");
-                roomPo.setUserId("-1");
+                roomPo.setUserId(importOwnerRoomDto.getUserId());
                 flag = roomV1InnerServiceSMOImpl.updateRoom(roomPo);
                 if (flag < 1) {
                     throw new IllegalArgumentException("瀵煎叆鎴垮眿澶辫触");
@@ -172,26 +353,28 @@
             unitPo.setLift(importOwnerRoomDto.getLift());
             unitPo.setUnitId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_unitId));
             unitPo.setUnitArea("1");
+            unitPo.setUnitNum(importOwnerRoomDto.getUnitNum());
             unitPo.setRemark("鎴夸骇瀵煎叆");
-            unitPo.setUserId("-1");
+            unitPo.setUserId(importOwnerRoomDto.getUserId());
             flag = unitV1InnerServiceSMOImpl.saveUnit(unitPo);
 
             if (flag < 1) {
                 throw new IllegalArgumentException("瀵煎叆鍗曞厓澶辫触");
             }
 
-            unitId = unitPo.getFloorId();
+            unitId = unitPo.getUnitId();
         } else {
             unitId = unitDtos.get(0).getUnitId();
-            if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(importOwnerRoomDto.getOwnerTypeCd())) {
+            if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(importOwnerRoomDto.getOwnerTypeCd()) || StringUtil.isEmpty(importOwnerRoomDto.getOwnerName())) {
                 unitPo = new UnitPo();
                 unitPo.setFloorId(floorId);
                 unitPo.setLayerCount(importOwnerRoomDto.getLayerCount());
                 unitPo.setLift(importOwnerRoomDto.getLift());
                 unitPo.setUnitId(unitId);
                 unitPo.setUnitArea("1");
+                unitPo.setUnitNum(importOwnerRoomDto.getUnitNum());
                 unitPo.setRemark("鎴夸骇瀵煎叆");
-                unitPo.setUserId("-1");
+                unitPo.setUserId(importOwnerRoomDto.getUserId());
                 flag = unitV1InnerServiceSMOImpl.updateUnit(unitPo);
                 if (flag < 1) {
                     throw new IllegalArgumentException("瀵煎叆鍗曞厓澶辫触");
@@ -223,8 +406,9 @@
             floorPo.setFloorArea("1");
             floorPo.setFloorId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_floorId));
             floorPo.setFloorNum(importOwnerRoomDto.getFloorNum());
+            floorPo.setName(importOwnerRoomDto.getFloorNum()+"鏍�");
             floorPo.setRemark("鎴夸骇瀵煎叆");
-            floorPo.setUserId("-1");
+            floorPo.setUserId(importOwnerRoomDto.getUserId());
             flag = floorV1InnerServiceSMOImpl.saveFloor(floorPo);
 
             if (flag < 1) {
@@ -234,15 +418,16 @@
             floorId = floorPo.getFloorId();
         } else {
             floorId = floorDtos.get(0).getFloorId();
-            if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(importOwnerRoomDto.getOwnerTypeCd())) {
+            if (OwnerDto.OWNER_TYPE_CD_OWNER.equals(importOwnerRoomDto.getOwnerTypeCd()) || StringUtil.isEmpty(importOwnerRoomDto.getOwnerName())) {
                 floorPo = new FloorPo();
-                floorPo.setbId("-1");
+                //floorPo.setbId("-1");
                 floorPo.setCommunityId(importOwnerRoomDto.getCommunityId());
-                floorPo.setFloorArea("1");
+                //floorPo.setFloorArea("1");
                 floorPo.setFloorId(floorId);
                 floorPo.setFloorNum(importOwnerRoomDto.getFloorNum());
+                floorPo.setName(importOwnerRoomDto.getFloorNum()+"鏍�");
                 floorPo.setRemark("鎴夸骇瀵煎叆");
-                floorPo.setUserId("-1");
+                floorPo.setUserId(importOwnerRoomDto.getUserId());
                 flag = floorV1InnerServiceSMOImpl.updateFloor(floorPo);
                 if (flag < 1) {
                     throw new IllegalArgumentException("瀵煎叆妤兼爧澶辫触");

--
Gitblit v1.8.0