Browse Source

资产导入功能开发完成

java110 4 years ago
parent
commit
3311847f32

+ 7 - 1
service-api/src/main/java/com/java110/api/smo/assetImport/impl/ImportOwnerRoomSMOImpl.java

@@ -12,6 +12,7 @@ import com.java110.utils.util.Assert;
 import com.java110.utils.util.CommonUtil;
 import com.java110.utils.util.ImportExcelUtils;
 import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.slf4j.Logger;
@@ -248,6 +249,8 @@ public class ImportOwnerRoomSMOImpl extends DefaultAbstractComponentSMO implemen
 
         List<ImportOwnerRoomDto> tmpImportOwnerRoomDtos = new ArrayList<>();
         int flag = 0;
+
+        int successCount = 0;
         try {
             for (int roomIndex = 0; roomIndex < ownerRoomDtos.size(); roomIndex++) {
                 tmpImportOwnerRoomDtos.add(ownerRoomDtos.get(roomIndex));
@@ -257,6 +260,8 @@ public class ImportOwnerRoomSMOImpl extends DefaultAbstractComponentSMO implemen
                         throw new IllegalArgumentException("保存失败");
                     }
                     tmpImportOwnerRoomDtos = new ArrayList<>();
+
+                    successCount += flag;
                 }
             }
 
@@ -265,6 +270,7 @@ public class ImportOwnerRoomSMOImpl extends DefaultAbstractComponentSMO implemen
                 if (flag < 1) {
                     throw new IllegalArgumentException("保存失败");
                 }
+                successCount += flag;
             }
         } catch (Exception e) {
             logger.error("导入失败", e);
@@ -272,7 +278,7 @@ public class ImportOwnerRoomSMOImpl extends DefaultAbstractComponentSMO implemen
             throw e;
         }
 
-        return responseEntity;
+        return ResultVo.createResponseEntity("总共导入:" + ownerRoomDtos.size() + ";成功导入:" + successCount + ";导入失败:" + (ownerRoomDtos.size() - successCount));
     }
 
     //解析Excel日期格式

+ 186 - 7
service-community/src/main/java/com/java110/community/smo/impl/ImportOwnerRoomInnerServiceSMOImpl.java

@@ -7,14 +7,15 @@ import com.java110.dto.FloorDto;
 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.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;
@@ -41,6 +42,12 @@ public class ImportOwnerRoomInnerServiceSMOImpl extends BaseServiceSMO implement
     @Autowired
     private IRoomV1InnerServiceSMO roomV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IOwnerV1InnerServiceSMO ownerV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelV1InnerServiceSMO ownerRoomRelV1InnerServiceSMOImpl;
+
     @Autowired
     public int saveOwnerRooms(@RequestBody List<ImportOwnerRoomDto> importOwnerRoomDtos) {
 
@@ -78,10 +85,182 @@ public class ImportOwnerRoomInnerServiceSMOImpl extends BaseServiceSMO implement
         //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("-1");
+            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("-1");
+            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("-1");
+            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("-1");
+            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("-1");
+        ownerRoomRelPo.setbId("-1");
+        ownerRoomRelPo.setRelId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_relId));
+        ownerRoomRelPo.setState("2001");
+        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) {
         RoomDto roomDto = new RoomDto();
         roomDto.setCommunityId(importOwnerRoomDto.getCommunityId());
@@ -119,7 +298,7 @@ public class ImportOwnerRoomInnerServiceSMOImpl extends BaseServiceSMO implement
             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.setRoomId(roomId);
@@ -183,7 +362,7 @@ public class ImportOwnerRoomInnerServiceSMOImpl extends BaseServiceSMO implement
             unitId = unitPo.getFloorId();
         } 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());
@@ -234,7 +413,7 @@ public class ImportOwnerRoomInnerServiceSMOImpl extends BaseServiceSMO implement
             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.setCommunityId(importOwnerRoomDto.getCommunityId());