Procházet zdrojové kódy

优化1.5报表相关bug

Your Name před 2 roky
rodič
revize
d3e23e26fc

+ 128 - 0
java110-db/src/main/resources/mapper/report/ReportFeeStatisticsServiceDaoImplMapper.xml

@@ -1248,6 +1248,134 @@
         <if test="link != null and link != ''">
             and t.link = #{link}
         </if>
+        <if test="page != -1 and page != null ">
+            limit #{page}, #{row}
+        </if>
+    </select>
+
+    <!-- 月实收总金额 查询-->
+    <select id="getMonthReceivedDetailAmount" parameterType="Map" resultType="Map">
+        select ifnull(sum(t.received_amount),0.0) amount
+        from pay_fee_detail_month t
+        inner join pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
+        left join pay_fee_detail pfd on t.detail_id = pfd.detail_id and pfd.status_cd = '0'
+        left join building_room br on t.obj_id = br.room_id and br.status_cd = '0'
+        left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
+        where 1=1
+        and t.status_cd = '0'
+        and t.cur_month_time &gt;= #{startDate}
+        and t.cur_month_time &lt; #{endDate}
+        and t.detail_id != '-1'
+        and t.community_id = #{communityId}
+        <if test="feeTypeCd != null and feeTypeCd != ''">
+            and pf.fee_type_cd = #{feeTypeCd}
+        </if>
+        <if test="floorId != null and floorId != ''">
+            and bu.floor_id = #{floorId}
+        </if>
+        <if test="objName != null and objName != ''">
+            and t.obj_name like concat('%',#{objName},'%')
+        </if>
+        <if test="ownerName != null and ownerName != ''">
+            and t.owner_name like concat('%',#{ownerName},'%')
+        </if>
+        <if test="link != null and link != ''">
+            and t.link = #{link}
+        </if>
+    </select>
+
+    <!-- 查询月欠费数据 -->
+    <select id="getMonthOweDetailCount" parameterType="Map" resultType="Map">
+        select count(1) count
+        from pay_fee_detail_month t
+        inner join pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
+        left join building_room br on t.obj_id = br.room_id and br.status_cd = '0'
+        left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
+        where 1=1
+        and t.status_cd = '0'
+        and t.cur_month_time &gt;= #{startDate}
+        and t.cur_month_time &lt; #{endDate}
+        and t.detail_id = '-1'
+        and t.community_id = #{communityId}
+        <if test="feeTypeCd != null and feeTypeCd != ''">
+            and pf.fee_type_cd = #{feeTypeCd}
+        </if>
+        <if test="floorId != null and floorId != ''">
+            and bu.floor_id = #{floorId}
+        </if>
+        <if test="objName != null and objName != ''">
+            and t.obj_name like concat('%',#{objName},'%')
+        </if>
+        <if test="ownerName != null and ownerName != ''">
+            and t.owner_name like concat('%',#{ownerName},'%')
+        </if>
+        <if test="link != null and link != ''">
+            and t.link = #{link}
+        </if>
+    </select>
+
+    <!-- 月实收 查询-->
+    <select id="getMonthOweDetailInfo" parameterType="Map" resultType="Map">
+        select t.obj_name objName,t.owner_name ownerName,t.link,t.fee_name feeName, pf.end_time startTime,t.deadline_time endTime,
+        t.receivable_amount receivableAmount,t.received_amount receivedAmount
+        from pay_fee_detail_month t
+        inner join pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
+        left join building_room br on t.obj_id = br.room_id and br.status_cd = '0'
+        left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
+        where 1=1
+        and t.status_cd = '0'
+        and t.cur_month_time &gt;= #{startDate}
+        and t.cur_month_time &lt; #{endDate}
+        and t.detail_id = '-1'
+        and t.community_id = #{communityId}
+        <if test="feeTypeCd != null and feeTypeCd != ''">
+            and pf.fee_type_cd = #{feeTypeCd}
+        </if>
+        <if test="floorId != null and floorId != ''">
+            and bu.floor_id = #{floorId}
+        </if>
+        <if test="objName != null and objName != ''">
+            and t.obj_name like concat('%',#{objName},'%')
+        </if>
+        <if test="ownerName != null and ownerName != ''">
+            and t.owner_name like concat('%',#{ownerName},'%')
+        </if>
+        <if test="link != null and link != ''">
+            and t.link = #{link}
+        </if>
+        <if test="page != -1 and page != null ">
+            limit #{page}, #{row}
+        </if>
+    </select>
+
+    <!-- 月欠费总金额 查询-->
+    <select id="getMonthOweDetailAmount" parameterType="Map" resultType="Map">
+        select ifnull(sum(t.receivable_amount),0.0) amount
+        from pay_fee_detail_month t
+        inner join pay_fee pf on t.fee_id = pf.fee_id and pf.status_cd = '0'
+        left join building_room br on t.obj_id = br.room_id and br.status_cd = '0'
+        left join building_unit bu on br.unit_id = bu.unit_id and bu.status_cd = '0'
+        where 1=1
+        and t.status_cd = '0'
+        and t.cur_month_time &gt;= #{startDate}
+        and t.cur_month_time &lt; #{endDate}
+        and t.detail_id = '-1'
+        and t.community_id = #{communityId}
+        <if test="feeTypeCd != null and feeTypeCd != ''">
+            and pf.fee_type_cd = #{feeTypeCd}
+        </if>
+        <if test="floorId != null and floorId != ''">
+            and bu.floor_id = #{floorId}
+        </if>
+        <if test="objName != null and objName != ''">
+            and t.obj_name like concat('%',#{objName},'%')
+        </if>
+        <if test="ownerName != null and ownerName != ''">
+            and t.owner_name like concat('%',#{ownerName},'%')
+        </if>
+        <if test="link != null and link != ''">
+            and t.link = #{link}
+        </if>
     </select>
 
 </mapper>

+ 14 - 0
java110-interface/src/main/java/com/java110/intf/report/IReportFeeStatisticsInnerServiceSMO.java

@@ -241,7 +241,21 @@ public interface IReportFeeStatisticsInnerServiceSMO {
     @RequestMapping(value = "/getObjReceivedFee", method = RequestMethod.POST)
     List<Map> getObjReceivedFee(@RequestBody QueryStatisticsDto queryStatisticsDto);
 
+    @RequestMapping(value = "/getMonthReceivedDetailCount", method = RequestMethod.POST)
     long getMonthReceivedDetailCount(@RequestBody QueryStatisticsDto queryStatisticsDto);
 
+    @RequestMapping(value = "/getMonthReceivedDetailInfo", method = RequestMethod.POST)
     List<Map> getMonthReceivedDetailInfo(@RequestBody QueryStatisticsDto queryStatisticsDto);
+
+    @RequestMapping(value = "/getMonthOweDetailCount", method = RequestMethod.POST)
+    long getMonthOweDetailCount(@RequestBody QueryStatisticsDto queryStatisticsDto);
+
+    @RequestMapping(value = "/getMonthOweDetailInfo", method = RequestMethod.POST)
+    List<Map> getMonthOweDetailInfo(@RequestBody QueryStatisticsDto queryStatisticsDto);
+
+    @RequestMapping(value = "/getMonthOweDetailAmount", method = RequestMethod.POST)
+    double getMonthOweDetailAmount(@RequestBody QueryStatisticsDto queryStatisticsDto);
+
+    @RequestMapping(value = "/getMonthReceivedDetailAmount", method = RequestMethod.POST)
+    double getMonthReceivedDetailAmount(@RequestBody QueryStatisticsDto queryStatisticsDto);
 }

+ 260 - 0
service-report/src/main/java/com/java110/report/cmd/dataReport/QueryMonthOweDetailCmd.java

@@ -0,0 +1,260 @@
+package com.java110.report.cmd.dataReport;
+
+import com.alibaba.fastjson.JSONArray;
+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.dict.DictDto;
+import com.java110.dto.report.QueryStatisticsDto;
+import com.java110.dto.room.RoomDto;
+import com.java110.intf.dev.IDictV1InnerServiceSMO;
+import com.java110.report.statistics.IBaseDataStatistics;
+import com.java110.report.statistics.IFeeStatistics;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.math.BigDecimal;
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 查询月实收明细统计
+ */
+@Java110Cmd(serviceCode = "dataReport.queryMonthOweDetail")
+public class QueryMonthOweDetailCmd extends Cmd {
+
+    @Autowired
+    private IFeeStatistics feeStatisticsImpl;
+
+    @Autowired
+    private IBaseDataStatistics baseDataStatisticsImpl;
+
+    @Autowired
+    private IDictV1InnerServiceSMO dictV1InnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区");
+        Assert.hasKeyAndValue(reqJson, "feeStartDate", "未包含开始时间");
+        Assert.hasKeyAndValue(reqJson, "feeEndDate", "未包含结束时间");
+
+        String startDate = reqJson.getString("feeStartDate");
+        String endDate = reqJson.getString("feeEndDate");
+        if (!StringUtil.isEmpty(startDate) && !startDate.contains(":")) {
+            startDate += " 00:00:00";
+            reqJson.put("feeStartDate", startDate);
+        }
+        if (!StringUtil.isEmpty(endDate) && !endDate.contains(":")) {
+            endDate += " 23:59:59";
+            reqJson.put("feeEndDate", endDate);
+        }
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        QueryStatisticsDto queryStatisticsDto = new QueryStatisticsDto();
+        queryStatisticsDto.setCommunityId(reqJson.getString("communityId"));
+        queryStatisticsDto.setStartDate(reqJson.getString("feeStartDate"));
+        queryStatisticsDto.setEndDate(reqJson.getString("feeEndDate"));
+        queryStatisticsDto.setFloorId(reqJson.getString("floorId"));
+        queryStatisticsDto.setObjName(reqJson.getString("objName"));
+        queryStatisticsDto.setFeeTypeCd(reqJson.getString("feeTypeCd"));
+        queryStatisticsDto.setOwnerName(reqJson.getString("ownerName"));
+        queryStatisticsDto.setLink(reqJson.getString("link"));
+        queryStatisticsDto.setPage(reqJson.getInteger("page"));
+        queryStatisticsDto.setRow(reqJson.getInteger("row"));
+        long count = feeStatisticsImpl.getMonthOweDetailCount(queryStatisticsDto);
+        List<Map> infos = null;
+        if (count > 0) {
+            infos = feeStatisticsImpl.getMonthOweDetailInfo(queryStatisticsDto);
+        } else {
+            infos = new ArrayList<>();
+        }
+        // todo 计算欠费金额
+        double oweAmount = feeStatisticsImpl.getMonthOweDetailAmount(queryStatisticsDto);
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) queryStatisticsDto.getRow()), count, infos);
+        resultVo.setSumTotal(oweAmount);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+        context.setResponseEntity(responseEntity);
+    }
+
+    /**
+     * 计算房屋欠费 实收费用
+     *
+     * @param rooms
+     * @return
+     */
+    private JSONArray computeRoomOweReceivedFee(List<RoomDto> rooms, QueryStatisticsDto queryStatisticsDto) {
+        if (rooms == null || rooms.size() < 1) {
+            return new JSONArray();
+        }
+
+        JSONArray datas = new JSONArray();
+        JSONObject data = null;
+
+        List<String> objIds = new ArrayList<>();
+        for (RoomDto roomDto : rooms) {
+            objIds.add(roomDto.getRoomId());
+            data = new JSONObject();
+            data.put("roomId", roomDto.getRoomId());
+            data.put("roomName", roomDto.getFloorNum() + "-" + roomDto.getUnitNum() + "-" + roomDto.getRoomNum());
+            data.put("ownerName", roomDto.getOwnerName());
+            data.put("ownerId", roomDto.getOwnerId());
+            data.put("link", roomDto.getLink());
+            datas.add(data);
+        }
+
+        queryStatisticsDto.setObjIds(objIds.toArray(new String[objIds.size()]));
+        List<Map> infos = feeStatisticsImpl.getObjReceivedFee(queryStatisticsDto);
+
+
+        if (infos == null || infos.size() < 1) {
+            return datas;
+        }
+
+        //todo 清洗数据 将数据转变成 map roomId feeTypeCd->array
+        // todo 讲 payerObjId, feeTypeCd,feeName,endTime,deadlineTime,amountOwed 转换为 按payerObjId 纵向转换
+        // todo  nInfo.put(info.get("payerObjId").toString(), info.get("payerObjId").toString());
+        // todo  nInfo.put(info.get("feeTypeCd").toString(), tmpInfos);
+        infos = washInfos(infos);
+
+        //System.out.printf("infos = " + JSONObject.toJSONString(infos));
+
+        BigDecimal receivedFee = null;
+        List<Map> itemFees = null;
+        String feeTypeCd = "";
+        data.put("receivedFee", "0");
+
+        DictDto dictDto = new DictDto();
+        dictDto.setTableName("pay_fee_config");
+        dictDto.setTableColumns("fee_type_cd_show");
+        List<DictDto> dictDtos = dictV1InnerServiceSMOImpl.queryDicts(dictDto);
+
+        // todo 根据房屋ID 和payerObjId 比较 合并数据,讲费用大类 横向 放入 data中,
+        // todo 并且计算每个 房屋 费用大类的欠费 和房屋的总欠费
+        for (int dataIndex = 0; dataIndex < datas.size(); dataIndex++) {
+            receivedFee = new BigDecimal(0.00);
+            data = datas.getJSONObject(dataIndex);
+            //todo 这里循环费用大类
+            for (Map info : infos) {
+                if (!data.getString("roomId").equals(info.get("payerObjId"))) {
+                    continue;
+                }
+                for (DictDto tDict : dictDtos) {
+                    //feeTypeCd = info.get("feeTypeCd").toString();
+                    feeTypeCd = tDict.getStatusCd();
+                    if (!info.containsKey(feeTypeCd)) {
+                        continue;
+                    }
+                    receivedFee = receivedFee.add(new BigDecimal(info.get(feeTypeCd + "receivedFee").toString()));
+                    data.put("receivedFee" + feeTypeCd, info.get(feeTypeCd));
+                }
+            }
+            data.put("receivedFee", receivedFee.doubleValue());
+        }
+
+        return datas;
+    }
+
+    /**
+     * //todo 清洗数据 将数据转变成 map roomId feeTypeCd->array
+     * // todo 讲 payerObjId, feeTypeCd,feeName,endTime,deadlineTime,amountOwed 转换为 按payerObjId 纵向转换
+     * // todo  nInfo.put(info.get("feeTypeCd").toString(), tmpInfos);
+     *
+     * @param infos
+     * @return
+     */
+    private List<Map> washInfos(List<Map> infos) {
+        List<Map> newInfos = new ArrayList<>();
+        for (Map info : infos) {
+            generatorNewInfo(newInfos, info);
+        }
+
+
+        List<Map> tmpInfos = null;
+        Map dInfo = null;
+        for (Map nInfo : newInfos) {
+            for (Map info : infos) {
+                if (!nInfo.get("payerObjId").equals(info.get("payerObjId"))) {
+                    continue;
+                }
+                //todo 根据feeTypeCd 去寻找
+                tmpInfos = getTmpInfos(nInfo, info);
+                //todo 深拷贝
+                dInfo = new HashMap();
+                dInfo.putAll(info);
+                tmpInfos.add(dInfo);
+                //计算单项 欠费金额
+                computeReceivedAmount(tmpInfos, info.get("feeTypeCd").toString(), nInfo);
+                nInfo.put(info.get("feeTypeCd").toString(), tmpInfos);
+            }
+        }
+
+        return newInfos;
+
+    }
+
+    /**
+     * 计算每个费用大类的 欠费
+     *
+     * @param tmpInfos
+     * @param feeTypeCd
+     * @param nInfo
+     */
+    private void computeReceivedAmount(List<Map> tmpInfos, String feeTypeCd, Map nInfo) {
+        if (tmpInfos == null || tmpInfos.size() < 1) {
+            nInfo.put(feeTypeCd + "receivedFee", 0.0);
+            return;
+        }
+        BigDecimal receivedAmount = new BigDecimal(0.0);
+        for (Map tInfo : tmpInfos) {
+            receivedAmount = receivedAmount.add(new BigDecimal(tInfo.get("receivedAmount").toString()));
+        }
+        receivedAmount = receivedAmount.setScale(2, BigDecimal.ROUND_HALF_UP);
+        nInfo.put(feeTypeCd + "receivedFee", receivedAmount.doubleValue());
+    }
+
+    private List<Map> getTmpInfos(Map nInfo, Map info) {
+        String feeTypeCd = info.get("feeTypeCd").toString();
+        if (nInfo.containsKey(feeTypeCd)) {
+            return (List<Map>) nInfo.get(feeTypeCd);
+        }
+
+        return new ArrayList<>();
+    }
+
+    /**
+     * 查询 新数据对方
+     *
+     * @param newInfos
+     * @param info
+     * @return
+     */
+    private void generatorNewInfo(List<Map> newInfos, Map info) {
+        if (newInfos.size() < 1) {
+            newInfos.add(info);
+            return;
+        }
+
+        for (Map newInfo : newInfos) {
+            if (newInfo.get("payerObjId").equals(info.get("payerObjId"))) {
+                return;
+            }
+        }
+
+        newInfos.add(info);
+    }
+
+}

+ 4 - 1
service-report/src/main/java/com/java110/report/cmd/dataReport/QueryMonthReceivedDetailCmd.java

@@ -81,8 +81,11 @@ public class QueryMonthReceivedDetailCmd extends Cmd {
             infos = new ArrayList<>();
         }
 
-        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) queryStatisticsDto.getRow()), count, infos);
+        //todo 实收金额
+        double receivedAmount = feeStatisticsImpl.getMonthReceivedDetailAmount(queryStatisticsDto);
 
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) queryStatisticsDto.getRow()), count, infos);
+        resultVo.setSumTotal(receivedAmount);
         ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
         context.setResponseEntity(responseEntity);
     }

+ 8 - 0
service-report/src/main/java/com/java110/report/dao/IReportFeeStatisticsServiceDao.java

@@ -240,4 +240,12 @@ public interface IReportFeeStatisticsServiceDao {
     long getMonthReceivedDetailCount(Map info);
 
     List<Map> getMonthReceivedDetailInfo(Map info);
+
+    long getMonthOweDetailCount(Map info);
+
+    List<Map> getMonthOweDetailInfo(Map info);
+
+    double getMonthOweDetailAmount(Map info);
+
+    double getMonthReceivedDetailAmount(Map info);
 }

+ 38 - 0
service-report/src/main/java/com/java110/report/dao/impl/ReportFeeStatisticsServiceDaoImpl.java

@@ -445,4 +445,42 @@ public class ReportFeeStatisticsServiceDaoImpl extends BaseServiceDao implements
         return infos;
     }
 
+    @Override
+    public long getMonthOweDetailCount(Map info) {
+        List<Map> infos = sqlSessionTemplate.selectList("reportFeeStatisticsServiceDaoImpl.getMonthOweDetailCount", info);
+
+        if (infos == null || infos.size() < 1) {
+            return 0;
+        }
+
+        return Long.parseLong(infos.get(0).get("count").toString());
+    }
+
+    @Override
+    public List<Map> getMonthOweDetailInfo(Map info) {
+        List<Map> infos = sqlSessionTemplate.selectList("reportFeeStatisticsServiceDaoImpl.getMonthOweDetailInfo", info);
+        return infos;
+    }
+
+    @Override
+    public double getMonthOweDetailAmount(Map info) {
+        List<Map> infos = sqlSessionTemplate.selectList("reportFeeStatisticsServiceDaoImpl.getMonthOweDetailAmount", info);
+
+        if (infos == null || infos.size() < 1) {
+            return 0;
+        }
+
+        return Double.parseDouble(infos.get(0).get("amount").toString());
+    }
+
+    @Override
+    public double getMonthReceivedDetailAmount(Map info) {
+        List<Map> infos = sqlSessionTemplate.selectList("reportFeeStatisticsServiceDaoImpl.getMonthReceivedDetailAmount", info);
+
+        if (infos == null || infos.size() < 1) {
+            return 0;
+        }
+
+        return Double.parseDouble(infos.get(0).get("amount").toString());
+    }
 }

+ 30 - 0
service-report/src/main/java/com/java110/report/smo/impl/ReportFeeStatisticsInnerServiceSMOImpl.java

@@ -307,4 +307,34 @@ public class ReportFeeStatisticsInnerServiceSMOImpl extends BaseServiceSMO imple
         List<Map> info = reportFeeStatisticsServiceDaoImpl.getMonthReceivedDetailInfo(BeanConvertUtil.beanCovertMap(queryStatisticsDto));
         return info;
     }
+
+    @Override
+    public long getMonthOweDetailCount(@RequestBody QueryStatisticsDto queryStatisticsDto) {
+        long info = reportFeeStatisticsServiceDaoImpl.getMonthOweDetailCount(BeanConvertUtil.beanCovertMap(queryStatisticsDto));
+        return info;
+    }
+
+    @Override
+    public List<Map> getMonthOweDetailInfo(@RequestBody QueryStatisticsDto queryStatisticsDto) {
+        int page = queryStatisticsDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            queryStatisticsDto.setPage((page - 1) * queryStatisticsDto.getRow());
+        }
+
+        List<Map> info = reportFeeStatisticsServiceDaoImpl.getMonthOweDetailInfo(BeanConvertUtil.beanCovertMap(queryStatisticsDto));
+        return info;
+    }
+
+    @Override
+    public double getMonthOweDetailAmount(@RequestBody QueryStatisticsDto queryStatisticsDto) {
+        double info = reportFeeStatisticsServiceDaoImpl.getMonthOweDetailAmount(BeanConvertUtil.beanCovertMap(queryStatisticsDto));
+        return info;
+    }
+
+    @Override
+    public double getMonthReceivedDetailAmount(@RequestBody QueryStatisticsDto queryStatisticsDto) {
+        double info = reportFeeStatisticsServiceDaoImpl.getMonthReceivedDetailAmount(BeanConvertUtil.beanCovertMap(queryStatisticsDto));
+        return info;
+    }
 }

+ 8 - 0
service-report/src/main/java/com/java110/report/statistics/IFeeStatistics.java

@@ -240,4 +240,12 @@ public interface IFeeStatistics {
     long getMonthReceivedDetailCount(QueryStatisticsDto queryStatisticsDto);
 
     List<Map> getMonthReceivedDetailInfo(QueryStatisticsDto queryStatisticsDto);
+
+    long getMonthOweDetailCount(QueryStatisticsDto queryStatisticsDto);
+
+    List<Map> getMonthOweDetailInfo(QueryStatisticsDto queryStatisticsDto);
+
+    double getMonthOweDetailAmount(QueryStatisticsDto queryStatisticsDto);
+
+    double getMonthReceivedDetailAmount(QueryStatisticsDto queryStatisticsDto);
 }

+ 18 - 0
service-report/src/main/java/com/java110/report/statistics/impl/FeeStatisticsImpl.java

@@ -285,5 +285,23 @@ public class FeeStatisticsImpl implements IFeeStatistics {
     public List<Map> getMonthReceivedDetailInfo(QueryStatisticsDto queryStatisticsDto) {
         return reportFeeStatisticsInnerServiceSMOImpl.getMonthReceivedDetailInfo(queryStatisticsDto);
     }
+    @Override
+    public long getMonthOweDetailCount(QueryStatisticsDto queryStatisticsDto) {
+        return reportFeeStatisticsInnerServiceSMOImpl.getMonthOweDetailCount(queryStatisticsDto);
+    }
+
+    @Override
+    public List<Map> getMonthOweDetailInfo(QueryStatisticsDto queryStatisticsDto) {
+        return reportFeeStatisticsInnerServiceSMOImpl.getMonthOweDetailInfo(queryStatisticsDto);
+    }
 
+    @Override
+    public double getMonthOweDetailAmount(QueryStatisticsDto queryStatisticsDto) {
+        return reportFeeStatisticsInnerServiceSMOImpl.getMonthOweDetailAmount(queryStatisticsDto);
+    }
+
+    @Override
+    public double getMonthReceivedDetailAmount(QueryStatisticsDto queryStatisticsDto) {
+        return reportFeeStatisticsInnerServiceSMOImpl.getMonthReceivedDetailAmount(queryStatisticsDto);
+    }
 }