Просмотр исходного кода

Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

Your Name лет назад: 2
Родитель
Сommit
b8e7bb1791

+ 19 - 0
java110-bean/src/main/java/com/java110/dto/owner/OwnerDto.java

@@ -78,6 +78,9 @@ public class OwnerDto extends PageDto implements Serializable {
     private String ownerFlag;
     private String operate;
 
+    private String startDate;
+    private String endDate;
+
     private List<OwnerAttrDto> ownerAttrDtos;
 
     private List<RoomDto> rooms;
@@ -521,4 +524,20 @@ public class OwnerDto extends PageDto implements Serializable {
     public void setNameLike(String nameLike) {
         this.nameLike = nameLike;
     }
+
+    public String getStartDate() {
+        return startDate;
+    }
+
+    public void setStartDate(String startDate) {
+        this.startDate = startDate;
+    }
+
+    public String getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(String endDate) {
+        this.endDate = endDate;
+    }
 }

+ 96 - 0
java110-db/src/main/resources/mapper/report/ReportOrderStatisticsServiceDaoImplMapper.xml

@@ -179,4 +179,100 @@
         and t.status_cd = '0'
     </select>
 
+    <select id="getOwnerReserveGoodsCount" parameterType="Map" resultType="Map">
+        select count(1) count
+        from (
+            select t.owner_id,t.name, t.link,rg.goods_name goodName,count(1) frequency
+            from building_owner t
+            left join building_owner bom on t.owner_id = bom.owner_id and bom.status_cd = '0'
+            left join reserve_goods_order rgo on (bom.link = rgo.person_tel or t.link = rgo.person_tel) and rgo.status_cd = '0'
+            left join reserve_goods rg on rgo.goods_id = rg.goods_id and rg.status_cd = '0'
+            where t.owner_type_cd = '1001'
+            and t.community_id = #{communityId}
+            and t.create_time &gt; #{startDate}
+            and t.create_time &lt; #{endDate}
+            <if test="name !=null and name != ''">
+                and t.name like concat('%',#{name},'%')
+            </if>
+            <if test="link !=null and link != ''">
+                and t.link= #{link}
+            </if>
+            and t.status_cd = '0'
+            group by t.owner_id,t.name,t.link,rg.goods_name
+            HAVING count(1) > 0
+        ) a
+    </select>
+    <select id="getOwnerReserveGoods" parameterType="Map" resultType="Map">
+        select t.owner_id,t.name, t.link,rg.goods_name goodName,count(1) frequency
+        from building_owner t
+        left join building_owner bom on t.owner_id = bom.owner_id and bom.status_cd = '0'
+        left join reserve_goods_order rgo on (bom.link = rgo.person_tel or t.link = rgo.person_tel) and rgo.status_cd = '0'
+        left join reserve_goods rg on rgo.goods_id = rg.goods_id and rg.status_cd = '0'
+        where t.owner_type_cd = '1001'
+        and t.community_id = #{communityId}
+        and t.create_time &gt; #{startDate}
+        and t.create_time &lt; #{endDate}
+        <if test="name !=null and name != ''">
+            and t.name like concat('%',#{name},'%')
+        </if>
+        <if test="link !=null and link != ''">
+            and t.link= #{link}
+        </if>
+        and t.status_cd = '0'
+        group by t.owner_id,t.name,t.link,rg.goods_name
+        HAVING count(1) > 0
+        order by t.owner_id
+        <if test="page != -1 and page != null ">
+            limit #{page}, #{row}
+        </if>
+    </select>
+
+    <select id="getOwnerDiningCount" parameterType="Map" resultType="Map">
+        select count(1) count
+        from reserve_goods_confirm_order t
+        left join reserve_goods_order rgo on t.order_id = rgo.order_id and t.goods_id = rgo.goods_id and rgo.status_cd = '0'
+        left join reserve_goods_order_time rgco on t.time_id = rgco.time_id and rgco.order_id = rgo.order_id and rgco.status_cd = '0'
+        left join reserve_goods rg on t.goods_id = rg.goods_id and rg.status_cd = '0'
+        left join building_owner bo on rgo.person_tel = bo.link and bo.status_cd = '0'
+        left join building_owner bo1 on bo.owner_id = bo1.owner_id and bo1.owner_type_cd = '1001' and bo1.status_cd = '0'
+        where 1 =1
+        and t.community_id = #{communityId}
+        <if test="startDate !=null and startDate != ''">
+            and t.create_time &gt; #{startDate}
+            and t.create_time &lt; #{endDate}
+        </if>
+        <if test="ownerName !=null and ownerName != ''">
+            and bol.name like concat('%',#{ownerName},'%')
+        </if>
+        <if test="personName !=null and personName != ''">
+            and rgo.person_name like concat('%',#{personName},'%')
+        </if>
+    </select>
+    <select id="getOwnerDinings" parameterType="Map" resultType="Map">
+        select t.time_id,t.time_id timeId,t.order_id,t.order_id orderId,t.goods_id,t.goods_id goodsId,t.co_id,t.co_id
+        coId,t.remark,t.status_cd,t.status_cd statusCd,t.type,t.community_id,t.community_id communityId,
+        rgo.person_name personName,rgo.person_tel personTel,rgo.appointment_time appointmentTime,rgco.hours,rgco.quantity,
+        rg.goods_name goodsName,rg.img_url imgUrl,t.create_time createTime,bo1.name ownerName
+        from reserve_goods_confirm_order t
+        left join reserve_goods_order rgo on t.order_id = rgo.order_id and t.goods_id = rgo.goods_id and rgo.status_cd = '0'
+        left join reserve_goods_order_time rgco on t.time_id = rgco.time_id and rgco.order_id = rgo.order_id and rgco.status_cd = '0'
+        left join reserve_goods rg on t.goods_id = rg.goods_id and rg.status_cd = '0'
+        left join building_owner bo on rgo.person_tel = bo.link and bo.status_cd = '0'
+        left join building_owner bo1 on bo.owner_id = bo1.owner_id and bo1.owner_type_cd = '1001' and bo1.status_cd = '0'
+        where 1 =1
+        and t.community_id = #{communityId}
+        <if test="startDate !=null and startDate != ''">
+            and t.create_time &gt; #{startDate}
+            and t.create_time &lt; #{endDate}
+        </if>
+        <if test="ownerName !=null and ownerName != ''">
+            and bol.name like concat('%',#{ownerName},'%')
+        </if>
+        <if test="personName !=null and personName != ''">
+            and rgo.person_name like concat('%',#{personName},'%')
+        </if>
+        <if test="page != -1 and page != null ">
+            limit #{page}, #{row}
+        </if>
+    </select>
 </mapper>

+ 13 - 0
java110-interface/src/main/java/com/java110/intf/report/IReportOrderStatisticsInnerServiceSMO.java

@@ -1,6 +1,7 @@
 package com.java110.intf.report;
 
 import com.java110.config.feign.FeignConfiguration;
+import com.java110.dto.owner.OwnerDto;
 import com.java110.dto.report.QueryStatisticsDto;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -83,4 +84,16 @@ public interface IReportOrderStatisticsInnerServiceSMO {
 
     @RequestMapping(value = "/getChargeMonthOrderCount", method = RequestMethod.POST)
     double getChargeMonthOrderCount(@RequestBody QueryStatisticsDto queryStatisticsDto);
+
+    @RequestMapping(value = "/getOwnerReserveGoodsCount", method = RequestMethod.POST)
+    int getOwnerReserveGoodsCount(@RequestBody OwnerDto ownerDto);
+
+    @RequestMapping(value = "/getOwnerReserveGoods", method = RequestMethod.POST)
+    List<Map> getOwnerReserveGoods(@RequestBody OwnerDto ownerDto);
+
+    @RequestMapping(value = "/getOwnerDiningCount", method = RequestMethod.POST)
+    int getOwnerDiningCount(@RequestBody OwnerDto ownerDto);
+
+    @RequestMapping(value = "/getOwnerDinings", method = RequestMethod.POST)
+    List<Map> getOwnerDinings(@RequestBody OwnerDto ownerDto);
 }

+ 14 - 0
service-fee/src/main/java/com/java110/fee/bmo/payFeeDetail/impl/ImportPayFeeDetailBMOImpl.java

@@ -30,6 +30,7 @@ import org.springframework.stereotype.Service;
 
 import java.text.ParseException;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.List;
 
 @Service("importPayFeeDetailBMOImpl")
@@ -102,6 +103,10 @@ public class ImportPayFeeDetailBMOImpl implements IImportPayFeeBMODetail {
             if (StringUtil.isEmpty(importRoomFee.getRoomId())) {
                 continue;
             }
+
+            String endTime = importRoomFee.getEndTime();
+
+
             importFeeDetail(importRoomFee, storeId, userId, batchId);
         }
     }
@@ -318,6 +323,15 @@ public class ImportPayFeeDetailBMOImpl implements IImportPayFeeBMODetail {
         payFeeDetailPo.setPrimeRate("1.0");
         payFeeDetailPo.setFeeId(tmpFeeDto.getFeeId());
         payFeeDetailPo.setStartTime(importRoomFee.getStartTime());
+        String endTime = importRoomFee.getEndTime();
+        //todo 周期性费用时时间自动加一天,因为物业统计的Excel 一般少一天
+        if (!FeeDto.FEE_FLAG_ONCE.equals(tmpFeeDto.getFeeFlag())) {
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(DateUtil.getDateFromStringB(endTime));
+            calendar.add(Calendar.DAY_OF_MONTH, 1);
+            endTime = DateUtil.getFormatTimeStringB(calendar.getTime());
+            importRoomFee.setEndTime(endTime);
+        }
         payFeeDetailPo.setEndTime(importRoomFee.getEndTime());
         payFeeDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
         payFeeDetailPo.setRemark(importRoomFee.getRemark());

+ 102 - 0
service-job/src/main/java/com/java110/job/export/adapt/DoDiningAdapt.java

@@ -0,0 +1,102 @@
+package com.java110.job.export.adapt;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.dto.data.ExportDataDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.intf.report.IReportOrderStatisticsInnerServiceSMO;
+import com.java110.job.export.IExportDataAdapt;
+import com.java110.utils.util.BeanConvertUtil;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+
+@Service("doDining")
+public class DoDiningAdapt implements IExportDataAdapt {
+
+    @Autowired
+    private IReportOrderStatisticsInnerServiceSMO reportOrderStatisticsInnerServiceSMOImpl;
+
+    private static final int MAX_ROW = 200;
+
+    @Override
+    public SXSSFWorkbook exportData(ExportDataDto exportDataDto) {
+
+        JSONObject reqJson = exportDataDto.getReqJson();
+        String startDate = reqJson.getString("startDate");
+        String endDate = reqJson.getString("endDate");
+        if (!startDate.contains(":")) {
+            startDate += " 00:00:00";
+            reqJson.put("startDate", startDate);
+        }
+        if (!endDate.contains(":")) {
+            endDate += " 23:59:59";
+            reqJson.put("endDate", endDate);
+        }
+
+        SXSSFWorkbook workbook = null;  //工作簿
+        workbook = new SXSSFWorkbook();
+        workbook.setCompressTempFiles(false);
+
+        Sheet sheet = workbook.createSheet( "就餐明细");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("就餐时间");
+        row.createCell(1).setCellValue("商品");
+        row.createCell(2).setCellValue("业主");
+        row.createCell(3).setCellValue("就餐人");
+        row.createCell(4).setCellValue("就餐电话");
+        row.createCell(5).setCellValue("订单编号");
+        row.createCell(6).setCellValue("备注");
+
+
+        OwnerDto ownerDto = BeanConvertUtil.covertBean(reqJson, OwnerDto.class);
+        ownerDto.setRow(MAX_ROW);
+        int count = reportOrderStatisticsInnerServiceSMOImpl.getOwnerDiningCount(ownerDto);
+
+        for (int page = 1; page <= count; page++) {
+            ownerDto.setPage(page);
+            ownerDto.setRow(MAX_ROW);
+            List<Map> infos = reportOrderStatisticsInnerServiceSMOImpl.getOwnerDinings(ownerDto);
+            appendData(infos, sheet, (page - 1) * MAX_ROW);
+        }
+
+        return workbook;
+    }
+
+    private void appendData(List<Map> datas, Sheet sheet, int step) {
+        Row row = null;
+        Map dataObj = null;
+        String oweFee = "";
+        String receivedFee = "";
+        for (int roomIndex = 0; roomIndex < datas.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + step + 1);
+            dataObj = datas.get(roomIndex);
+            row.createCell(0).setCellValue(dataObj.get("createTime").toString());
+            row.createCell(1).setCellValue(dataObj.get("goodsName") == null ? "" : dataObj.get("goodsName").toString());
+            row.createCell(2).setCellValue(dataObj.get("ownerName") == null ? "" : dataObj.get("ownerName").toString());
+            row.createCell(3).setCellValue(dataObj.get("personName")== null ? "" : dataObj.get("personName").toString());
+            row.createCell(4).setCellValue(dataObj.get("personTel") == null ? "" : dataObj.get("personTel").toString());
+            row.createCell(5).setCellValue(dataObj.get("orderId")== null ? "" : dataObj.get("orderId").toString());
+            row.createCell(6).setCellValue(dataObj.get("remark")== null ? "" : dataObj.get("remark").toString());
+
+        }
+
+    }
+
+    private void freshStartDateAndEndDate(List<Map> infos, OwnerDto ownerDto) {
+        if (infos == null || infos.size() < 1) {
+            return;
+        }
+
+        for (Map info : infos) {
+            info.put("startDate", ownerDto.getStartDate());
+            info.put("endDate", ownerDto.getEndDate());
+        }
+    }
+
+}

+ 100 - 0
service-job/src/main/java/com/java110/job/export/adapt/OwnerDiningAdapt.java

@@ -0,0 +1,100 @@
+package com.java110.job.export.adapt;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.dto.data.ExportDataDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.intf.report.IReportOrderStatisticsInnerServiceSMO;
+import com.java110.job.export.IExportDataAdapt;
+import com.java110.utils.util.BeanConvertUtil;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+
+@Service("ownerDining")
+public class OwnerDiningAdapt implements IExportDataAdapt {
+
+    @Autowired
+    private IReportOrderStatisticsInnerServiceSMO reportOrderStatisticsInnerServiceSMOImpl;
+
+    private static final int MAX_ROW = 200;
+
+    @Override
+    public SXSSFWorkbook exportData(ExportDataDto exportDataDto) {
+
+        JSONObject reqJson = exportDataDto.getReqJson();
+        String startDate = reqJson.getString("startDate");
+        String endDate = reqJson.getString("endDate");
+        if (!startDate.contains(":")) {
+            startDate += " 00:00:00";
+            reqJson.put("startDate", startDate);
+        }
+        if (!endDate.contains(":")) {
+            endDate += " 23:59:59";
+            reqJson.put("endDate", endDate);
+        }
+
+        SXSSFWorkbook workbook = null;  //工作簿
+        workbook = new SXSSFWorkbook();
+        workbook.setCompressTempFiles(false);
+
+        Sheet sheet = workbook.createSheet(startDate + "至" + endDate + "就餐统计");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("开始时间");
+        row.createCell(1).setCellValue("结束时间");
+        row.createCell(2).setCellValue("业主名称");
+        row.createCell(3).setCellValue("手机号");
+        row.createCell(4).setCellValue("商品");
+        row.createCell(5).setCellValue("就餐次数");
+
+
+        OwnerDto ownerDto = BeanConvertUtil.covertBean(reqJson, OwnerDto.class);
+        ownerDto.setRow(MAX_ROW);
+        int count = reportOrderStatisticsInnerServiceSMOImpl.getOwnerReserveGoodsCount(ownerDto);
+
+        for (int page = 1; page <= count; page++) {
+            ownerDto.setPage(page);
+            ownerDto.setRow(MAX_ROW);
+            List<Map> infos = reportOrderStatisticsInnerServiceSMOImpl.getOwnerReserveGoods(ownerDto);
+            freshStartDateAndEndDate(infos, ownerDto);
+            appendData(infos, sheet, (page - 1) * MAX_ROW);
+        }
+
+        return workbook;
+    }
+
+    private void appendData(List<Map> datas, Sheet sheet, int step) {
+        Row row = null;
+        Map dataObj = null;
+        String oweFee = "";
+        String receivedFee = "";
+        for (int roomIndex = 0; roomIndex < datas.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + step + 1);
+            dataObj = datas.get(roomIndex);
+            row.createCell(0).setCellValue(dataObj.get("startDate").toString());
+            row.createCell(1).setCellValue(dataObj.get("endDate").toString());
+            row.createCell(2).setCellValue(dataObj.get("name").toString());
+            row.createCell(3).setCellValue(dataObj.get("link").toString());
+            row.createCell(4).setCellValue(dataObj.get("goodsName") == null ? "" : dataObj.get("goodsName").toString());
+            row.createCell(5).setCellValue(dataObj.get("frequency").toString());
+        }
+
+    }
+
+    private void freshStartDateAndEndDate(List<Map> infos, OwnerDto ownerDto) {
+        if (infos == null || infos.size() < 1) {
+            return;
+        }
+
+        for (Map info : infos) {
+            info.put("startDate", ownerDto.getStartDate());
+            info.put("endDate", ownerDto.getEndDate());
+        }
+    }
+
+}

+ 68 - 0
service-report/src/main/java/com/java110/report/cmd/owner/QueryOwnerDiningCmd.java

@@ -0,0 +1,68 @@
+package com.java110.report.cmd.owner;
+
+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.owner.OwnerDto;
+import com.java110.intf.report.IReportOrderStatisticsInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 业主 家庭成员 就餐明细
+ */
+@Java110Cmd(serviceCode = "owner.queryOwnerDining")
+public class QueryOwnerDiningCmd extends Cmd {
+
+    @Autowired
+    private IReportOrderStatisticsInnerServiceSMO reportOrderStatisticsInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区");
+
+        if(reqJson.containsKey("startDate") && reqJson.containsKey("endDate")) {
+            String startDate = reqJson.getString("startDate");
+            String endDate = reqJson.getString("endDate");
+            if (!StringUtil.isEmpty(startDate) && !startDate.contains(":")) {
+                startDate += " 00:00:00";
+                reqJson.put("startDate", startDate);
+            }
+            if (!StringUtil.isEmpty(endDate) && !endDate.contains(":")) {
+                endDate += " 23:59:59";
+                reqJson.put("endDate", endDate);
+            }
+        }
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        int row = reqJson.getInteger("row");
+        OwnerDto ownerDto = BeanConvertUtil.covertBean(reqJson, OwnerDto.class);
+
+        // todo 查询总数量
+        int total = reportOrderStatisticsInnerServiceSMOImpl.getOwnerDiningCount(ownerDto);
+//        int count = 0;
+        List<Map> infos = null;
+        if (total > 0) {
+            infos = reportOrderStatisticsInnerServiceSMOImpl.getOwnerDinings(ownerDto);
+        } else {
+            infos = new ArrayList<>();
+        }
+
+        ResponseEntity<String> responseEntity = ResultVo.createResponseEntity((int) Math.ceil((double) total / (double) row), total, infos);
+        context.setResponseEntity(responseEntity);
+    }
+}

+ 79 - 0
service-report/src/main/java/com/java110/report/cmd/owner/QueryOwnerReserveGoodsCmd.java

@@ -0,0 +1,79 @@
+package com.java110.report.cmd.owner;
+
+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.owner.OwnerDto;
+import com.java110.intf.report.IReportOrderStatisticsInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 查询业主就餐情况
+ */
+@Java110Cmd(serviceCode = "owner.queryOwnerReserveGoods")
+public class QueryOwnerReserveGoodsCmd extends Cmd {
+
+    @Autowired
+    private IReportOrderStatisticsInnerServiceSMO reportOrderStatisticsInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        Assert.hasKeyAndValue(reqJson,"communityId","未包含小区");
+        Assert.hasKeyAndValue(reqJson,"startDate","未包含开始时间");
+        Assert.hasKeyAndValue(reqJson,"endDate","未包含结束时间");
+        String startDate = reqJson.getString("startDate");
+        String endDate = reqJson.getString("endDate");
+        if (!startDate.contains(":")) {
+            startDate += " 00:00:00";
+            reqJson.put("startDate", startDate);
+        }
+        if (!endDate.contains(":")) {
+            endDate += " 23:59:59";
+            reqJson.put("endDate", endDate);
+        }
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        int row = reqJson.getInteger("row");
+        OwnerDto ownerDto = BeanConvertUtil.covertBean(reqJson, OwnerDto.class);
+
+        int total = reportOrderStatisticsInnerServiceSMOImpl.getOwnerReserveGoodsCount(ownerDto);
+//        int count = 0;
+        List<Map> infos = null;
+        if (total > 0) {
+            infos = reportOrderStatisticsInnerServiceSMOImpl.getOwnerReserveGoods(ownerDto);
+        } else {
+            infos = new ArrayList<>();
+        }
+
+        freshStartDateAndEndDate(infos,ownerDto);
+
+        ResponseEntity<String> responseEntity = ResultVo.createResponseEntity((int) Math.ceil((double) total / (double) row), total, infos);
+        context.setResponseEntity(responseEntity);
+
+    }
+
+    private void freshStartDateAndEndDate(List<Map> infos,OwnerDto ownerDto) {
+        if(infos == null || infos.size() < 1){
+            return ;
+        }
+
+        for(Map info :infos){
+            info.put("startDate",ownerDto.getStartDate());
+            info.put("endDate",ownerDto.getEndDate());
+        }
+    }
+}

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

@@ -52,4 +52,14 @@ public interface IReportOrderStatisticsServiceDao {
     double getChargeMachineOrderCount(Map info);
 
     double getChargeMonthOrderCount(Map info);
+
+    int getOwnerReserveGoodsCount(Map info);
+
+    List<Map> getOwnerReserveGoods(Map info);
+
+
+    int getOwnerDiningCount(Map info);
+
+    List<Map> getOwnerDinings(Map info);
+
 }

+ 44 - 0
service-report/src/main/java/com/java110/report/dao/impl/ReportOrderStatisticsServiceDaoImpl.java

@@ -225,4 +225,48 @@ public class ReportOrderStatisticsServiceDaoImpl extends BaseServiceDao implemen
         return Double.parseDouble(infos.get(0).get("chargeMonthMoney").toString());
     }
 
+    @Override
+    public int getOwnerReserveGoodsCount(Map info) {
+        logger.debug("查询 getOwnerReserveGoodsCount 入参 info : {}", JSONObject.toJSONString(info));
+
+        List<Map> infos = sqlSessionTemplate.selectList("reportOrderStatisticsServiceDaoImpl.getOwnerReserveGoodsCount", info);
+
+        if (infos == null || infos.size() < 1) {
+            return 0;
+        }
+
+        return Integer.parseInt(infos.get(0).get("count").toString());
+    }
+
+    @Override
+    public List<Map> getOwnerReserveGoods(Map info) {
+        logger.debug("查询 getOwnerReserveGoods 入参 info : {}", JSONObject.toJSONString(info));
+
+        List<Map> infos = sqlSessionTemplate.selectList("reportOrderStatisticsServiceDaoImpl.getOwnerReserveGoods", info);
+
+        return infos;
+    }
+
+    @Override
+    public int getOwnerDiningCount(Map info) {
+        logger.debug("查询 getOwnerDiningCount 入参 info : {}", JSONObject.toJSONString(info));
+
+        List<Map> infos = sqlSessionTemplate.selectList("reportOrderStatisticsServiceDaoImpl.getOwnerDiningCount", info);
+
+        if (infos == null || infos.size() < 1) {
+            return 0;
+        }
+
+        return Integer.parseInt(infos.get(0).get("count").toString());
+    }
+
+    @Override
+    public List<Map> getOwnerDinings(Map info) {
+        logger.debug("查询 getOwnerDinings 入参 info : {}", JSONObject.toJSONString(info));
+
+        List<Map> infos = sqlSessionTemplate.selectList("reportOrderStatisticsServiceDaoImpl.getOwnerDinings", info);
+
+        return infos;
+    }
+
 }

+ 37 - 0
service-report/src/main/java/com/java110/report/smo/impl/ReportOrderStatisticsInnerServiceSMOImpl.java

@@ -3,6 +3,7 @@ package com.java110.report.smo.impl;
 
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.dto.PageDto;
+import com.java110.dto.owner.OwnerDto;
 import com.java110.dto.report.QueryStatisticsDto;
 import com.java110.intf.report.IReportFeeStatisticsInnerServiceSMO;
 import com.java110.intf.report.IReportOrderStatisticsInnerServiceSMO;
@@ -136,4 +137,40 @@ public class ReportOrderStatisticsInnerServiceSMOImpl extends BaseServiceSMO imp
         return info;
     }
 
+    @Override
+    public int getOwnerReserveGoodsCount(@RequestBody OwnerDto ownerDto) {
+        int info = reportOrderStatisticsServiceDaoImpl.getOwnerReserveGoodsCount(BeanConvertUtil.beanCovertMap(ownerDto));
+        return info;
+    }
+
+    @Override
+    public List<Map> getOwnerReserveGoods(@RequestBody OwnerDto ownerDto) {
+        int page = ownerDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            ownerDto.setPage((page - 1) * ownerDto.getRow());
+        }
+
+        List<Map> infos = reportOrderStatisticsServiceDaoImpl.getOwnerReserveGoods(BeanConvertUtil.beanCovertMap(ownerDto));
+        return infos;
+    }
+
+    @Override
+    public int getOwnerDiningCount(@RequestBody OwnerDto ownerDto) {
+        int info = reportOrderStatisticsServiceDaoImpl.getOwnerDiningCount(BeanConvertUtil.beanCovertMap(ownerDto));
+        return info;
+    }
+
+    @Override
+    public List<Map> getOwnerDinings(@RequestBody OwnerDto ownerDto) {
+        int page = ownerDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            ownerDto.setPage((page - 1) * ownerDto.getRow());
+        }
+
+        List<Map> infos = reportOrderStatisticsServiceDaoImpl.getOwnerDinings(BeanConvertUtil.beanCovertMap(ownerDto));
+        return infos;
+    }
+
 }

+ 3 - 0
service-store/src/main/java/com/java110/store/cmd/reserveOrder/ListReserveGoodsConfirmOrderCmd.java

@@ -22,6 +22,7 @@ import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.intf.store.IReserveGoodsConfirmOrderV1InnerServiceSMO;
 import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,6 +55,8 @@ public class ListReserveGoodsConfirmOrderCmd extends Cmd {
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         super.validatePageInfo(reqJson);
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区");
+
     }
 
     @Override

+ 3 - 0
service-store/src/main/java/com/java110/store/cmd/reserveOrder/ListReserveGoodsOrderCmd.java

@@ -24,6 +24,7 @@ import com.java110.dto.reserve.ReserveGoodsOrderTimeDto;
 import com.java110.intf.store.IReserveGoodsOrderTimeV1InnerServiceSMO;
 import com.java110.intf.store.IReserveGoodsOrderV1InnerServiceSMO;
 import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -61,6 +62,8 @@ public class ListReserveGoodsOrderCmd extends Cmd {
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         super.validatePageInfo(reqJson);
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区");
+
     }
 
     @Override