java110 лет назад: 5
Родитель
Сommit
f5fc5617bb

+ 6 - 0
java110-db/src/main/resources/mapper/community/RoomServiceDaoImplMapper.xml

@@ -615,6 +615,9 @@
         <if test="floorId !=null and floorId != ''">
             and f.`floor_id`= #{floorId}
         </if>
+        <if test="floorNum !=null and floorNum != ''">
+            and f.`floor_num`= #{floorNum}
+        </if>
         <if test="unitPrice !=null and unitPrice != ''">
             and t.unit_price= #{unitPrice}
         </if>
@@ -651,6 +654,9 @@
         <if test="unitId !=null and unitId != ''">
             and t.unit_id= #{unitId}
         </if>
+        <if test="unitNum !=null and unitNum != ''">
+            and u.unit_num= #{unitNum}
+        </if>
         <if test="bId !=null and bId != ''">
             and t.b_id= #{bId}
         </if>

+ 3 - 2
service-fee/src/main/java/com/java110/fee/api/MeterWaterApi.java

@@ -29,13 +29,14 @@ public class MeterWaterApi {
     @RequestMapping(value = "/queryPreMeterWater", method = RequestMethod.GET)
     public ResponseEntity<String> queryPreMeterWater(@RequestParam(value = "communityId") String communityId,
                                                      @RequestParam(value = "objId") String objId,
-                                                     @RequestParam(value = "objType") String objType) {
+                                                     @RequestParam(value = "objType") String objType,
+                                                     @RequestParam(value = "roomNum" ,required = false) String roomNum) {
         MeterWaterDto meterWaterDto = new MeterWaterDto();
         meterWaterDto.setObjId(objId);
         meterWaterDto.setObjType(objType);
         meterWaterDto.setPage(1);
         meterWaterDto.setRow(1);
         meterWaterDto.setCommunityId(communityId);
-        return queryPreMeterWaterImpl.query(meterWaterDto);
+        return queryPreMeterWaterImpl.query(meterWaterDto,roomNum);
     }
 }

+ 1 - 1
service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java

@@ -105,7 +105,7 @@ public class QueryOweFeeImpl implements IQueryOweFee {
                 return false;
             }
             RoomDto roomDto = new RoomDto();
-            roomDto.setFloorId(nums[0]);
+            roomDto.setFloorNum(nums[0]);
             roomDto.setUnitNum(nums[1]);
             roomDto.setRoomNum(nums[2]);
             roomDto.setCommunityId(feeDto.getCommunityId());

+ 1 - 1
service-fee/src/main/java/com/java110/fee/bmo/meterWater/IQueryPreMeterWater.java

@@ -14,5 +14,5 @@ public interface IQueryPreMeterWater {
      * @param meterWaterDto 表信息
      * @return
      */
-    ResponseEntity<String> query(MeterWaterDto meterWaterDto);
+    ResponseEntity<String> query(MeterWaterDto meterWaterDto,String roomNum);
 }

+ 63 - 1
service-fee/src/main/java/com/java110/fee/bmo/meterWater/impl/QueryPreMeterWaterImpl.java

@@ -1,8 +1,14 @@
 package com.java110.fee.bmo.meterWater.impl;
 
+import com.alibaba.fastjson.JSONArray;
+import com.java110.dto.RoomDto;
 import com.java110.dto.meterWater.MeterWaterDto;
+import com.java110.dto.parking.ParkingSpaceDto;
 import com.java110.fee.bmo.meterWater.IQueryPreMeterWater;
+import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.IMeterWaterInnerServiceSMO;
+import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -23,12 +29,68 @@ public class QueryPreMeterWaterImpl implements IQueryPreMeterWater {
     @Autowired
     private IMeterWaterInnerServiceSMO meterWaterInnerServiceSMOImpl;
 
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+    @Autowired
+    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
+
 
     @Override
-    public ResponseEntity<String> query(MeterWaterDto meterWaterDto) {
+    public ResponseEntity<String> query(MeterWaterDto meterWaterDto, String roomNum) {
+
+        if (!freshFeeDtoParam(meterWaterDto, roomNum)) {
+            return ResultVo.createResponseEntity(1, 0, new JSONArray());
+        }
 
         List<MeterWaterDto> meterWaterDtos = meterWaterInnerServiceSMOImpl.queryMeterWaters(meterWaterDto);
         int total = meterWaterDtos == null ? 0 : meterWaterDtos.size();
         return ResultVo.createResponseEntity(1, total, meterWaterDtos);
     }
+
+    private boolean freshFeeDtoParam(MeterWaterDto meterWaterDto, String roomNum) {
+
+        if (StringUtil.isEmpty(roomNum)) {
+            return true;
+        }
+
+        if (!roomNum.contains("-")) {
+            return false;
+        }
+        if (MeterWaterDto.METER_TYPE_ROOM.equals(meterWaterDto.getObjType())) {
+            String[] nums = roomNum.split("-");
+            if (nums.length != 3) {
+                return false;
+            }
+            RoomDto roomDto = new RoomDto();
+            roomDto.setFloorNum(nums[0]);
+            roomDto.setUnitNum(nums[1]);
+            roomDto.setRoomNum(nums[2]);
+            roomDto.setCommunityId(meterWaterDto.getCommunityId());
+            List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+            if (roomDtos == null || roomDtos.size() < 1) {
+                return false;
+            }
+            meterWaterDto.setObjId(roomDtos.get(0).getRoomId());
+
+        } else {
+            String[] nums = roomNum.split("-");
+            if (nums.length != 2) {
+                return false;
+            }
+            ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
+            parkingSpaceDto.setAreaNum(nums[0]);
+            parkingSpaceDto.setNum(nums[1]);
+            parkingSpaceDto.setCommunityId(meterWaterDto.getCommunityId());
+            List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
+
+            if (parkingSpaceDtos == null || parkingSpaceDtos.size() < 1) {
+                return false;
+            }
+            meterWaterDto.setObjId(parkingSpaceDtos.get(0).getPsId());
+        }
+
+        return true;
+    }
 }