Parcourir la source

优化报表功能

java110 il y a 3 ans
Parent
commit
c6b944ae63

+ 15 - 1
java110-db/src/main/resources/mapper/report/ReportCommunityServiceDaoImplMapper.xml

@@ -199,6 +199,20 @@
 
 
 
-
+    <!-- 查询无效费用 add by wuxw 2018-07-03 -->
+    <select id="queryRoomsTree" parameterType="Map" resultType="Map">
+        SELECT t.room_id,t.room_id roomId,t.layer,t.room_num,
+        t.room_num roomNum,t.unit_id,u.`unit_num` unitNum,
+        u.unit_id unitId,f.floor_id floorId,f.floor_num floorNum,t.`community_id` communityId,bo.owner_id ownerId ,bo.`name` ownerName ,bo.link link
+        FROM building_room t
+        inner join building_unit u on t.`unit_id` = u.`unit_id` and u.`status_cd` = '0'
+        inner JOIN f_floor f on u.`floor_id` = f.`floor_id` AND f.`community_id` = t.`community_id` AND f.`status_cd` =
+        '0'
+        left join building_owner_room_rel borr on t.room_id =  borr.room_id and borr.status_cd = '0'
+        left join building_owner bo on borr.owner_id =  bo.member_id and bo.status_cd = '0'
+        WHERE 1 =1
+        and u.unit_id = #{unitId}
+        and t.community_id= #{communityId}
+    </select>
 
 </mapper>

+ 7 - 0
java110-interface/src/main/java/com/java110/intf/report/IReportCommunityInnerServiceSMO.java

@@ -41,5 +41,12 @@ public interface IReportCommunityInnerServiceSMO {
     @RequestMapping(value = "/queryCarStructures", method = RequestMethod.POST)
     List<OwnerCarDto> queryCarStructures(@RequestBody OwnerCarDto ownerCarDto);
 
+    /**
+     * 查询房屋树形
+     * @param roomDto
+     * @return
+     */
+    @RequestMapping(value = "/queryRoomsTree", method = RequestMethod.POST)
+    List<RoomDto> queryRoomsTree(@RequestBody RoomDto roomDto);
 
 }

+ 61 - 0
service-report/src/main/java/com/java110/report/cmd/room/QueryRoomsTreeCmd.java

@@ -0,0 +1,61 @@
+package com.java110.report.cmd.room;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.RoomDto;
+import com.java110.intf.report.IReportCommunityInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.api.ApiRoomDataVo;
+import com.java110.vo.api.ApiRoomVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.List;
+
+@Java110Cmd(serviceCode = "room.queryRoomsTree")
+public class QueryRoomsTreeCmd extends Cmd {
+    @Autowired
+    private IReportCommunityInnerServiceSMO reportCommunityInnerServiceSMOImpl;
+
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
+        Assert.jsonObjectHaveKey(reqJson, "communityId", "请求中未包含communityId信息");
+        Assert.jsonObjectHaveKey(reqJson, "unitId", "请求中未包含单元信息");
+        Assert.jsonObjectHaveKey(reqJson, "page", "请求报文中未包含page节点");
+        Assert.jsonObjectHaveKey(reqJson, "row", "请求报文中未包含row节点");
+
+        Assert.isInteger(reqJson.getString("page"), "page不是数字");
+        Assert.isInteger(reqJson.getString("row"), "row不是数字");
+        Assert.hasLength(reqJson.getString("communityId"), "小区ID不能为空");
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
+        RoomDto roomDto = BeanConvertUtil.covertBean(reqJson, RoomDto.class);
+        ApiRoomVo apiRoomVo = new ApiRoomVo();
+
+        List<RoomDto> roomDtoList = null;
+
+        roomDtoList = reportCommunityInnerServiceSMOImpl.queryRoomsTree(roomDto);
+        apiRoomVo.setTotal(0);
+        if (roomDtoList != null && roomDtoList.size() > 0) {
+            apiRoomVo.setTotal(roomDtoList.size());
+        }
+
+        apiRoomVo.setRooms(BeanConvertUtil.covertBeanList(roomDtoList, ApiRoomDataVo.class));
+        int row = reqJson.getInteger("row");
+        apiRoomVo.setRecords((int) Math.ceil((double) apiRoomVo.getTotal() / (double) row));
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiRoomVo), HttpStatus.OK);
+        cmdDataFlowContext.setResponseEntity(responseEntity);
+    }
+
+
+}

+ 3 - 0
service-report/src/main/java/com/java110/report/dao/IReportCommunityServiceDao.java

@@ -79,4 +79,7 @@ public interface IReportCommunityServiceDao {
      */
     List<Map> queryInvalidFeeMonthStatistics(Map reportFeeDto);
 
+
+    List<Map>  queryRoomsTree(Map info);
+
 }

+ 10 - 0
service-report/src/main/java/com/java110/report/dao/impl/ReportCommunityServiceDaoImpl.java

@@ -117,4 +117,14 @@ public class ReportCommunityServiceDaoImpl extends BaseServiceDao implements IRe
 
         return deposits;
     }
+
+
+    @Override
+    public List<Map> queryRoomsTree(Map info) {
+        logger.debug("查询queryRoomsTree信息 入参 info : {}", JSONObject.toJSONString(info));
+
+        List<Map> communityDtos = sqlSessionTemplate.selectList("reportCommunityServiceDaoImpl.queryRoomsTree", info);
+
+        return communityDtos;
+    }
 }

+ 8 - 0
service-report/src/main/java/com/java110/report/smo/impl/ReportCommunityInnerServiceSMOImpl.java

@@ -56,4 +56,12 @@ public class ReportCommunityInnerServiceSMOImpl extends BaseServiceSMO implement
     }
 
 
+    @Override
+    public List<RoomDto> queryRoomsTree(@RequestBody RoomDto roomDto) {
+        //校验是否传了 分页信息
+        List<RoomDto> roomDtos = BeanConvertUtil.covertBeanList(reportCommunityServiceDaoImpl.queryRoomsTree(BeanConvertUtil.beanCovertMap(roomDto)), RoomDto.class);
+
+        return roomDtos;
+    }
+
 }