xuhy
2024-12-20 3d998953d34afa6c72ca5d292f49c1349461aeda
导出
11个文件已修改
123 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataStatisticsController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/export/SumGeneratorDetailClient.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/template/营业统计报表.xls 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataStatisticsController.java
@@ -401,12 +401,12 @@
            }
        }
        sumGeneratorClient.setGeneratorTime(DateUtils.stringToLocalDate(query.getStartTime()) + " ~ " + DateUtils.stringToLocalDate(query.getEndTime()));
        sumGeneratorClient = orderMealService.sumExport(query);
        sumGeneratorClient.setGeneratorTime(DateUtils.stringToLocalDateTime(query.getStartTime()).toLocalDate() + " ~ " + DateUtils.stringToLocalDateTime(query.getEndTime()).toLocalDate());
        TShop shop = shopService.getById(objectId);
        if(Objects.nonNull(shop)){
            sumGeneratorClient.setShopName(shop.getShopName());
        }
        sumGeneratorClient = orderSaleService.sumExport(query);
        result.put("sumGeneratorClient",sumGeneratorClient);
        //1.获取excel模板
        ClassPathResource classPathResource = new ClassPathResource("template/营业统计报表.xls");
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -111,7 +111,9 @@
                // 过滤请求
                .authorizeRequests()
                // 对于登录login 注册register 验证码captchaImage 允许匿名访问
                .antMatchers("/getPrivacyAgreement/{agreementType}","/applet/queryProtocolConfigByType","/applet/login","/reLogin","/platformLogin","/login","/applet/queryProtocolConfigByType", "/register","/applet/getCode","/applet/loginCode","/applet/changepwd", "/captchaImage","/getCode","/loginCode","/operations/getBySingleNum/**",
                .antMatchers("/getPrivacyAgreement/{agreementType}","/applet/queryProtocolConfigByType","/applet/login","/reLogin",
                        "/platformLogin","/login","/applet/queryProtocolConfigByType", "/register","/applet/getCode","/applet/loginCode","/applet/changepwd",
                        "/captchaImage","/getCode","/loginCode","/operations/getBySingleNum/**",
                        "/user/getUserInfoByNumber/**").permitAll()
                // 静态资源,可匿名访问
                .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
ruoyi-system/src/main/java/com/ruoyi/system/export/SumGeneratorDetailClient.java
@@ -12,14 +12,14 @@
    @Excel(name = "日期")
    private String dayTime;
    @Excel(name = "实收金额")
    private BigDecimal actualAmount;
    private BigDecimal actualAmount = BigDecimal.ZERO;
    @Excel(name = "帐单数")
    private Integer orderCount;
    private Integer orderCount = 0;
    @Excel(name = "单均消费")
    private BigDecimal singleAmount;
    private BigDecimal singleAmount = BigDecimal.ZERO;
    @Excel(name = "消费人数")
    private Integer perCount;
    private Integer perCount = 0;
    @Excel(name = "人均消费")
    private BigDecimal perAmount;
    private BigDecimal perAmount = BigDecimal.ZERO;
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.system.domain.TOrderMeal;
import com.ruoyi.system.export.SumGeneratorDetailClient;
import com.ruoyi.system.query.*;
import com.ruoyi.system.vo.*;
import org.apache.ibatis.annotations.Param;
@@ -124,4 +125,10 @@
    Map<String, Double> getDataGeneratorMealDetailOrderMoney(@Param("query")TDataGeneratorMealQuery query);
    /**
     * 导出汇总
     * @param query
     * @return
     */
    List<SumGeneratorDetailClient> sumExport(@Param("query") ProfitDetailsQuery query);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java
@@ -7,6 +7,7 @@
import com.ruoyi.system.dto.CheckoutDTO;
import com.ruoyi.system.dto.OrderMealGeneratorDTO;
import com.ruoyi.system.dto.TOrderMealDTO;
import com.ruoyi.system.export.SumGeneratorClient;
import com.ruoyi.system.query.*;
import com.ruoyi.system.vo.*;
@@ -147,4 +148,11 @@
    void deleteByShopId(Long shopId);
    Map<String, Double> getDataGeneratorMealDetailOrderMoney(TDataGeneratorMealQuery query);
    /**
     * 汇总导出
     * @param query
     * @return
     */
    SumGeneratorClient sumExport(ProfitDetailsQuery query);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleService.java
@@ -126,10 +126,4 @@
    Map<String, Double> getDataGeneratorSaleDetailOrderMoney(TDataGeneratorSaleQuery query);
    /**
     * 汇总导出
     * @param query
     * @return
     */
    SumGeneratorClient sumExport(ProfitDetailsQuery query);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java
@@ -11,6 +11,8 @@
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.dto.*;
import com.ruoyi.system.export.SumGeneratorClient;
import com.ruoyi.system.export.SumGeneratorDetailClient;
import com.ruoyi.system.mapper.TOrderMealGoodsMapper;
import com.ruoyi.system.mapper.TOrderMealMapper;
import com.ruoyi.system.query.*;
@@ -503,4 +505,31 @@
        return this.baseMapper.getDataGeneratorMealDetailOrderMoney(query);
    }
    @Override
    public SumGeneratorClient sumExport(ProfitDetailsQuery query) {
        List<SumGeneratorDetailClient> sumGeneratorDetailClient = this.baseMapper.sumExport(query);
        for (SumGeneratorDetailClient generatorDetailClient : sumGeneratorDetailClient) {
            generatorDetailClient.setSingleAmount(generatorDetailClient.getActualAmount().divide(new BigDecimal(generatorDetailClient.getOrderCount()),2,BigDecimal.ROUND_DOWN));
            generatorDetailClient.setPerAmount(generatorDetailClient.getActualAmount().divide(new BigDecimal(generatorDetailClient.getPerCount()),2,BigDecimal.ROUND_DOWN));
        }
        SumGeneratorClient sumGeneratorClient = new SumGeneratorClient();
        if(!CollectionUtils.isEmpty(sumGeneratorDetailClient)){
            sumGeneratorClient.setActualAmountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getActualAmount).reduce(BigDecimal::add).get());
            sumGeneratorClient.setOrderCountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getOrderCount).reduce(Integer::sum).get());
            sumGeneratorClient.setSingleAmountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getSingleAmount).reduce(BigDecimal::add).get());
            sumGeneratorClient.setPerCountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getPerCount).reduce(Integer::sum).get());
            sumGeneratorClient.setPerAmountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getPerAmount).reduce(BigDecimal::add).get());
            sumGeneratorClient.setAllMoney(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getActualAmount).reduce(BigDecimal::add).get());
            sumGeneratorClient.setSingleAvgAmount(sumGeneratorClient.getAllMoney().divide(new BigDecimal(sumGeneratorClient.getPerCountSum()),2,BigDecimal.ROUND_DOWN));
            sumGeneratorClient.setPerCapitaAmount(sumGeneratorClient.getAllMoney().divide(new BigDecimal(sumGeneratorClient.getOrderCountSum()),2,BigDecimal.ROUND_DOWN));
        }
        sumGeneratorClient.setOrderStatistics(sumGeneratorDetailClient);
        return sumGeneratorClient;
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java
@@ -491,28 +491,4 @@
        return this.baseMapper.getDataGeneratorSaleDetailOrderMoney(query);
    }
    @Override
    public SumGeneratorClient sumExport(ProfitDetailsQuery query) {
        List<SumGeneratorDetailClient> sumGeneratorDetailClient = this.baseMapper.sumExport(query);
        for (SumGeneratorDetailClient generatorDetailClient : sumGeneratorDetailClient) {
            generatorDetailClient.setSingleAmount(generatorDetailClient.getActualAmount().divide(new BigDecimal(generatorDetailClient.getOrderCount()),2,BigDecimal.ROUND_DOWN));
            generatorDetailClient.setPerAmount(generatorDetailClient.getActualAmount().divide(new BigDecimal(generatorDetailClient.getPerCount()),2,BigDecimal.ROUND_DOWN));
        }
        SumGeneratorClient sumGeneratorClient = new SumGeneratorClient();
        sumGeneratorClient.setActualAmountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getActualAmount).reduce(BigDecimal::add).get());
        sumGeneratorClient.setOrderCountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getOrderCount).reduce(Integer::sum).get());
        sumGeneratorClient.setSingleAmountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getSingleAmount).reduce(BigDecimal::add).get());
        sumGeneratorClient.setPerCountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getPerCount).reduce(Integer::sum).get());
        sumGeneratorClient.setPerAmountSum(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getPerAmount).reduce(BigDecimal::add).get());
        sumGeneratorClient.setAllMoney(sumGeneratorDetailClient.stream().map(SumGeneratorDetailClient::getActualAmount).reduce(BigDecimal::add).get());
        sumGeneratorClient.setSingleAvgAmount(sumGeneratorClient.getAllMoney().divide(new BigDecimal(sumGeneratorClient.getPerCountSum())));
        sumGeneratorClient.setPerCapitaAmount(sumGeneratorClient.getAllMoney().divide(new BigDecimal(sumGeneratorClient.getOrderCountSum())));
        sumGeneratorClient.setOrderStatistics(sumGeneratorDetailClient);
        return sumGeneratorClient;
    }
}
ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml
@@ -392,5 +392,19 @@
            AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
        </where>
    </select>
    <select id="sumExport" resultType="com.ruoyi.system.export.SumGeneratorDetailClient">
        select
        DATE_FORMAT(mealTime, '%Y-%m-%d') AS dayTime,
        IFNULL(SUM(payMoney),0) AS actualAmount,
        IFNULL(COUNT(id),0) AS orderCount,
        IFNULL(SUM(mealPerson),0) AS perCount
        from t_order_meal
        <where>
            <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                AND (mealTime BETWEEN #{query.startTime} AND #{query.endTime})
            </if>
            AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
        </where>
        GROUP BY DATE_FORMAT(mealTime, '%Y-%m-%d')
    </select>
</mapper>
ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml
@@ -339,20 +339,5 @@
            AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
        </where>
    </select>
    <select id="sumExport" resultType="com.ruoyi.system.export.SumGeneratorDetailClient">
        select
            DATE_FORMAT(mealTime, '%Y-%m-%d') AS dayTime,
            IFNULL(SUM(payMoney),0) AS actualAmount,
            IFNULL(COUNT(id),0) AS orderCount,
            IFNULL(SUM(mealPerson),0) AS perCount
        from t_order_sale
        <where>
            <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
                AND (orderTime BETWEEN #{query.startTime} AND #{query.endTime})
            </if>
            AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
        </where>
        GROUP BY DATE_FORMAT(mealTime, '%Y-%m-%d')
    </select>
</mapper>
ruoyi-system/src/main/resources/template/营业统计报表.xls
Binary files differ