From 8c2128317af3e5a2df32150f3684167925ee4508 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期四, 05 九月 2024 14:07:32 +0800 Subject: [PATCH] 生成数据详情和导出 --- ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java | 25 + ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealMapper.java | 24 + ruoyi-system/src/main/java/com/ruoyi/system/query/TOrderSaleQuery.java | 4 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 9 ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderStockExportExcel.java | 29 + ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TShopController.java | 21 + ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderSaleGoods.java | 4 ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorMealQuery.java | 22 + ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderStockGoods.java | 9 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleMapper.java | 17 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java | 55 ++ ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorStockDetailVO.java | 23 + ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java | 99 ++++ ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml | 52 ++ ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderMealExportExcel.java | 2 ruoyi-system/src/main/resources/mapper/system/TOrderStockMapper.xml | 41 ++ ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderSaleExportExcel.java | 2 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockGoodsServiceImpl.java | 3 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java | 29 + ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderStockGoodsMapper.java | 4 ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorMealDetailVO.java | 29 + ruoyi-system/src/main/java/com/ruoyi/system/dto/UpdatePwdDTO.java | 25 + ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml | 2 ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderStockService.java | 17 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataGeneratorController.java | 156 ++++++++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java | 89 ++++ ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorStockQuery.java | 23 + ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorSaleDetailVO.java | 29 + ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderSaleController.java | 7 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java | 8 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderStockMapper.java | 15 ruoyi-system/src/main/resources/mapper/system/TOrderStockGoodsMapper.xml | 3 ruoyi-system/src/main/java/com/ruoyi/system/vo/TOrderSaleVO.java | 3 ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderSaleAndGoodsExportExcel.java | 31 + ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java | 46 ++ ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleService.java | 17 ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml | 70 +++ ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorSaleQuery.java | 26 + ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderSale.java | 3 ruoyi-system/src/main/java/com/ruoyi/system/query/TOrderStockQuery.java | 5 ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderStockGoodsService.java | 3 ruoyi-system/src/main/java/com/ruoyi/system/service/TDataGeneratorService.java | 35 + 42 files changed, 1,050 insertions(+), 66 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataGeneratorController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataGeneratorController.java index ea540a4..e2b403c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataGeneratorController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataGeneratorController.java @@ -1,21 +1,46 @@ package com.ruoyi.web.controller.api; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.constant.OrderNumConstants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.WebUtils; import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.domain.TOrderSaleGoods; +import com.ruoyi.system.domain.TOrderStockGoods; import com.ruoyi.system.dto.OrderMealGeneratorDTO; import com.ruoyi.system.dto.OrderSaleGeneratorDTO; +import com.ruoyi.system.export.TOrderMealExportExcel; +import com.ruoyi.system.export.TOrderSaleAndGoodsExportExcel; +import com.ruoyi.system.export.TOrderStockExportExcel; +import com.ruoyi.system.query.TDataGeneratorMealQuery; import com.ruoyi.system.query.TDataGeneratorQuery; +import com.ruoyi.system.query.TDataGeneratorSaleQuery; +import com.ruoyi.system.query.TDataGeneratorStockQuery; import com.ruoyi.system.service.TDataGeneratorService; import com.ruoyi.system.service.TOrderMealService; -import com.ruoyi.system.vo.TDataGeneratorVO; +import com.ruoyi.system.service.TOrderSaleService; +import com.ruoyi.system.service.TOrderStockService; +import com.ruoyi.system.vo.*; import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Workbook; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.math.BigDecimal; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -30,13 +55,17 @@ public class TDataGeneratorController { private final TOrderMealService orderMealService; + private final TOrderSaleService orderSaleService; + private final TOrderStockService orderStockService; private final TDataGeneratorService dataGeneratorService; private final TokenService tokenService; private final RedisCache redisCache; @Autowired - public TDataGeneratorController(TOrderMealService orderMealService, TDataGeneratorService dataGeneratorService, TokenService tokenService, RedisCache redisCache) { + public TDataGeneratorController(TOrderMealService orderMealService, TOrderSaleService orderSaleService, TOrderStockService orderStockService, TDataGeneratorService dataGeneratorService, TokenService tokenService, RedisCache redisCache) { this.orderMealService = orderMealService; + this.orderSaleService = orderSaleService; + this.orderStockService = orderStockService; this.dataGeneratorService = dataGeneratorService; this.tokenService = tokenService; this.redisCache = redisCache; @@ -85,6 +114,129 @@ return AjaxResult.success(); } + @ApiOperation( value = "餐饮生成数据详情") + @PostMapping(value = "/mealGeneratorDataDetail") + public AjaxResult<TDataGeneratorMealDetailVO> mealGeneratorDataDetail(@Validated @RequestBody TDataGeneratorMealQuery query) { + return AjaxResult.success(dataGeneratorService.mealGeneratorDataDetail(query)); + } + + @ApiOperation( value = "销售生成数据详情") + @PostMapping(value = "/saleGeneratorDataDetail") + public AjaxResult<TDataGeneratorSaleDetailVO> saleGeneratorDataDetail(@Validated @RequestBody TDataGeneratorSaleQuery query) { + return AjaxResult.success(dataGeneratorService.saleGeneratorDataDetail(query)); + } + + @ApiOperation( value = "进货生成数据详情") + @PostMapping(value = "/stockGeneratorDataDetail") + public AjaxResult<TDataGeneratorStockDetailVO> stockGeneratorDataDetail(@Validated @RequestBody TDataGeneratorStockQuery query) { + return AjaxResult.success(dataGeneratorService.stockGeneratorDataDetail(query)); + } + + @ApiOperation( value = "餐饮生成数据详情导出") + @PostMapping(value = "/mealGeneratorExport") + public void mealGeneratorExport(@Validated @RequestBody TDataGeneratorMealQuery query) { + List<TOrderMealVO> list = orderMealService.mealGeneratorExport(query); + List<TOrderMealExportExcel> orderMeals = new ArrayList<>(); + for (TOrderMealVO orderMealVO : list) { + TOrderMealExportExcel tOrderMealExportExcel = new TOrderMealExportExcel(); + BeanUtils.copyProperties(orderMealVO, tOrderMealExportExcel); + tOrderMealExportExcel.setCreateStrTime(DateUtils.localDateTimeToString(orderMealVO.getCreateTime())); + tOrderMealExportExcel.setGoodsList(orderMealVO.getGoodsList().stream().collect(Collectors.joining("\n"))); + } + Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TOrderMealExportExcel.class, orderMeals); + HttpServletResponse response = WebUtils.response(); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + ServletOutputStream outputStream = null; + try { + String fileName = URLEncoder.encode("餐饮生成列表.xls", "utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + fileName); + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.setHeader("Pragma", "no-cache"); + response.setHeader("Cache-Control", "no-cache"); + outputStream = response.getOutputStream(); + workbook.write(outputStream); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + outputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + @ApiOperation( value = "销售生成数据详情导出") + @PostMapping(value = "/saleGeneratorExport") + public void saleGeneratorExport(@Validated @RequestBody TDataGeneratorSaleQuery query) { + List<TOrderSaleVO> list = orderSaleService.saleGeneratorExport(query); + List<TOrderSaleAndGoodsExportExcel> orderMeals = new ArrayList<>(); + for (TOrderSaleVO orderSaleVO : list) { + TOrderSaleAndGoodsExportExcel orderSaleExportExcel = new TOrderSaleAndGoodsExportExcel(); + BeanUtils.copyProperties(orderSaleVO, orderSaleExportExcel); + orderSaleExportExcel.setCreateStrTime(DateUtils.localDateTimeToString(orderSaleVO.getCreateTime())); + orderSaleExportExcel.setGoodsAmount(orderSaleVO.getOrderSaleGoods().stream().map(TOrderSaleGoods::getSalePrice).reduce(BigDecimal::add).get()); + } + Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TOrderSaleAndGoodsExportExcel.class, orderMeals); + HttpServletResponse response = WebUtils.response(); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + ServletOutputStream outputStream = null; + try { + String fileName = URLEncoder.encode("销售生成列表.xls", "utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + fileName); + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.setHeader("Pragma", "no-cache"); + response.setHeader("Cache-Control", "no-cache"); + outputStream = response.getOutputStream(); + workbook.write(outputStream); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + outputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + @ApiOperation( value = "进货生成数据详情导出") + @PostMapping(value = "/stockGeneratorExport") + public void stockGeneratorExport(@Validated @RequestBody TDataGeneratorStockQuery query) { + List<TOrderStockVO> list = orderStockService.stockGeneratorExport(query); + List<TOrderStockExportExcel> orderStockExportExcels = new ArrayList<>(); + for (TOrderStockVO orderStockVO : list) { + TOrderStockExportExcel orderStockExportExcel = new TOrderStockExportExcel(); + BeanUtils.copyProperties(orderStockVO, orderStockExportExcel); + orderStockExportExcel.setGoodsAmount(orderStockVO.getOrderStockGoods().stream().map(TOrderStockGoods::getSalePrice).reduce(BigDecimal::add).get()); + orderStockExportExcel.setStockTime(DateUtils.localDateToString(orderStockVO.getStockTime())); + } + Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TOrderStockExportExcel.class, orderStockExportExcels); + HttpServletResponse response = WebUtils.response(); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("utf-8"); + ServletOutputStream outputStream = null; + try { + String fileName = URLEncoder.encode("销售生成列表.xls", "utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + fileName); + response.setContentType("application/vnd.ms-excel;charset=UTF-8"); + response.setHeader("Pragma", "no-cache"); + response.setHeader("Cache-Control", "no-cache"); + outputStream = response.getOutputStream(); + workbook.write(outputStream); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + outputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java index 7c87b5b..e0c8aa2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java @@ -4,10 +4,8 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.ruoyi.common.annotation.Log; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.WebUtils; import com.ruoyi.framework.web.service.TokenService; @@ -16,13 +14,11 @@ import com.ruoyi.system.dto.AddDishDTO; import com.ruoyi.system.dto.CheckoutDTO; import com.ruoyi.system.dto.TOrderMealDTO; -import com.ruoyi.system.importExcel.TOrderMealExportExcel; -import com.ruoyi.system.query.SysUserQuery; +import com.ruoyi.system.export.TOrderMealExportExcel; import com.ruoyi.system.query.TOrderMealQuery; import com.ruoyi.system.service.TOrderMealGoodsService; import com.ruoyi.system.service.TOrderMealService; import com.ruoyi.system.vo.AmountSumVO; -import com.ruoyi.system.vo.SysUserVO; import com.ruoyi.system.vo.TOrderMealVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -38,8 +34,6 @@ import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; -import java.util.Map; -import java.util.Objects; import java.util.stream.Collectors; /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderSaleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderSaleController.java index aa69342..8a2248c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderSaleController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderSaleController.java @@ -9,19 +9,16 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.WebUtils; import com.ruoyi.framework.web.service.TokenService; -import com.ruoyi.system.domain.TOrderMeal; -import com.ruoyi.system.domain.TOrderMealGoods; import com.ruoyi.system.domain.TOrderSale; import com.ruoyi.system.domain.TOrderSaleGoods; import com.ruoyi.system.dto.TOrderSaleDTO; -import com.ruoyi.system.importExcel.TOrderMealExportExcel; -import com.ruoyi.system.importExcel.TOrderSaleExportExcel; +import com.ruoyi.system.export.TOrderMealExportExcel; +import com.ruoyi.system.export.TOrderSaleExportExcel; import com.ruoyi.system.query.TOrderMealQuery; import com.ruoyi.system.query.TOrderSaleQuery; import com.ruoyi.system.service.TOrderSaleGoodsService; import com.ruoyi.system.service.TOrderSaleService; import com.ruoyi.system.vo.AmountSumVO; -import com.ruoyi.system.vo.TOrderMealVO; import com.ruoyi.system.vo.TOrderSaleVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TShopController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TShopController.java index 220d113..08f2e93 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TShopController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TShopController.java @@ -1,9 +1,11 @@ package com.ruoyi.web.controller.api; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.domain.TShop; import com.ruoyi.system.dto.TShopDTO; import com.ruoyi.system.query.TShopQuery; @@ -15,7 +17,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.List; import java.util.Objects; /** @@ -33,11 +34,13 @@ private final TShopService shopService; private final ISysUserService userService; + private final TokenService tokenService; @Autowired - public TShopController(TShopService shopService, ISysUserService userService) { + public TShopController(TShopService shopService, ISysUserService userService, TokenService tokenService) { this.shopService = shopService; this.userService = userService; + this.tokenService = tokenService; } /** @@ -82,6 +85,20 @@ } /** + * 用户查看店铺信息详情 + */ + @ApiOperation( value = "用户查看店铺信息详情") + @GetMapping(value = "/getDetailByUserId") + public AjaxResult<TShop> getDetailByUserId() { + Integer roleType = tokenService.getLoginUser().getRoleType(); + if(roleType == 1){ + return AjaxResult.error("该用户不是商家账号"); + } + return AjaxResult.success(shopService.getOne(Wrappers.<TShop>lambdaQuery().eq(TShop::getUserId, tokenService.getLoginUser().getUserId()) + .last("LIMIT 1"))); + } + + /** * 删除店铺信息 */ @ApiOperation( value = "删除店铺信息") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index 5a1354f..24ff8d3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -13,6 +13,7 @@ import com.ruoyi.common.utils.StringUtils; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.SysUserUpdateStatusDTO; +import com.ruoyi.system.dto.UpdatePwdDTO; import com.ruoyi.system.query.SysUserQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.SysUserVO; @@ -22,6 +23,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.authentication.BadCredentialsException; import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -250,6 +252,33 @@ } /** + * 修改密码 + */ + // @PreAuthorize("@ss.hasPermi('system:user:resetPwd')") + @ApiOperation(value = "修改密码") + @Log(title = "用户信息-修改密码", businessType = BusinessType.UPDATE) + @PostMapping("/updatePwd") + public AjaxResult updatePwd(@RequestBody UpdatePwdDTO dto) + { + SysUser user = userService.selectUserByUserName(dto.getAccount()); + if(Objects.isNull(user)){ + return AjaxResult.error("未查询到该账号"); + } + userService.checkUserAllowed(user); + // 校验密码跟原密码是否匹配 + if (!SecurityUtils.matchesPassword(dto.getOldPassword(), user.getPassword())) { + throw new BadCredentialsException("输入原密码不正确"); + } + if (dto.getPassword().equals(dto.getConfirmPassword())) { + throw new BadCredentialsException("两次输入密码不一致"); + } +// userService.checkUserDataScope(user.getUserId()); + user.setPassword(SecurityUtils.encryptPassword(dto.getPassword())); + user.setUpdateBy(getUsername()); + return AjaxResult.success(userService.resetPwd(user)); + } + + /** * 状态修改 */ @ApiOperation(value = "状态修改") diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderSale.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderSale.java index 82b9c02..3c826d3 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderSale.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderSale.java @@ -60,6 +60,9 @@ @ApiModelProperty(value = "店铺id") @TableField("shopId") private Long shopId; + @ApiModelProperty(value = "数据生成id") + @TableField("generatorId") + private Long generatorId; @ApiModelProperty(value = "销售订单商品") @TableField(exist = false) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderSaleGoods.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderSaleGoods.java index f390a45..9625ed6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderSaleGoods.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderSaleGoods.java @@ -1,5 +1,6 @@ package com.ruoyi.system.domain; +import cn.afterturn.easypoi.excel.annotation.Excel; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -40,10 +41,12 @@ private String goodsNum; @ApiModelProperty(value = "商品名称") + @Excel(name = "进货商品", width = 15) @TableField("goodsName") private String goodsName; @ApiModelProperty(value = "商品成本价") + @Excel(name = "商品进价", width = 15) @TableField("goodsCostPrice") private BigDecimal goodsCostPrice; @@ -52,6 +55,7 @@ private BigDecimal goodsSalePrice; @ApiModelProperty(value = "商品数量") + @Excel(name = "进货数量", width = 15) @TableField("goodsCount") private Integer goodsCount; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderStockGoods.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderStockGoods.java index 48bdf25..eab268c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderStockGoods.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderStockGoods.java @@ -1,5 +1,6 @@ package com.ruoyi.system.domain; +import cn.afterturn.easypoi.excel.annotation.Excel; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -40,10 +41,12 @@ private String goodsNum; @ApiModelProperty(value = "商品名称") + @Excel(name = "进货商品",width = 15) @TableField("goodsName") private String goodsName; @ApiModelProperty(value = "成本价") + @Excel(name = "进货价格",width = 15) @TableField("costPrice") private BigDecimal costPrice; @@ -56,12 +59,8 @@ private String goodsPicture; @ApiModelProperty(value = "进货数量") + @Excel(name = "商品数量",width = 15) @TableField("stockCount") private Integer stockCount; - - @ApiModelProperty(value = "进货价格") - @TableField("stockPrice") - private BigDecimal stockPrice; - } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/UpdatePwdDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/UpdatePwdDTO.java new file mode 100644 index 0000000..1824bfb --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/UpdatePwdDTO.java @@ -0,0 +1,25 @@ +package com.ruoyi.system.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@ApiModel(value = "修改密码DTO") +public class UpdatePwdDTO implements Serializable { + + @ApiModelProperty(value = "账号") + private String account; + + @ApiModelProperty(value = "原密码") + private String oldPassword; + + @ApiModelProperty(value = "新密码") + private String password; + + @ApiModelProperty(value = "确认密码") + private String confirmPassword; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/importExcel/TOrderMealExportExcel.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderMealExportExcel.java similarity index 97% rename from ruoyi-system/src/main/java/com/ruoyi/system/importExcel/TOrderMealExportExcel.java rename to ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderMealExportExcel.java index fb02730..6eb79b4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/importExcel/TOrderMealExportExcel.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderMealExportExcel.java @@ -1,4 +1,4 @@ -package com.ruoyi.system.importExcel; +package com.ruoyi.system.export; import cn.afterturn.easypoi.excel.annotation.Excel; import com.baomidou.mybatisplus.annotation.TableField; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderSaleAndGoodsExportExcel.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderSaleAndGoodsExportExcel.java new file mode 100644 index 0000000..a87ab1f --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderSaleAndGoodsExportExcel.java @@ -0,0 +1,31 @@ +package com.ruoyi.system.export; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import cn.afterturn.easypoi.excel.annotation.ExcelCollection; +import com.ruoyi.system.domain.TOrderSaleGoods; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +@Data +@ApiModel(value = "销售订单导出明细Excel") +public class TOrderSaleAndGoodsExportExcel implements Serializable { + + @Excel(width = 30,name = "订单编号",needMerge = true) + private String orderNum; + + @Excel(width = 30,name = "下单日期",needMerge = true) + private String createStrTime; + + @ExcelCollection(name = "菜品明细") + private List<TOrderSaleGoods> orderSaleGoods; + + @Excel(width = 30,name = "商品总价",needMerge = true) + private BigDecimal goodsAmount; + + @Excel(width = 30,name = "支付方式",replace = {"现金_1","支付宝_2","微信_3","银行卡_4","其他_5"},needMerge = true) + private Integer payType; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/importExcel/TOrderSaleExportExcel.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderSaleExportExcel.java similarity index 96% rename from ruoyi-system/src/main/java/com/ruoyi/system/importExcel/TOrderSaleExportExcel.java rename to ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderSaleExportExcel.java index 5cdf4fa..1c069d8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/importExcel/TOrderSaleExportExcel.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderSaleExportExcel.java @@ -1,4 +1,4 @@ -package com.ruoyi.system.importExcel; +package com.ruoyi.system.export; import cn.afterturn.easypoi.excel.annotation.Excel; import io.swagger.annotations.ApiModel; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderStockExportExcel.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderStockExportExcel.java new file mode 100644 index 0000000..198c2df --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderStockExportExcel.java @@ -0,0 +1,29 @@ +package com.ruoyi.system.export; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import cn.afterturn.easypoi.excel.annotation.ExcelCollection; +import com.ruoyi.system.domain.TOrderStockGoods; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +@Data +@ApiModel(value = "进货数据生成export") +public class TOrderStockExportExcel implements Serializable { + + @Excel(width = 30,name = "进货单号",needMerge = true) + private String stockNum; + + @Excel(width = 30,name = "进货日期",needMerge = true) + private String stockTime; + + @ExcelCollection(name = "菜品明细") + private List<TOrderStockGoods> orderStockGoods; + + @Excel(width = 30,name = "商品总价",needMerge = true) + private BigDecimal goodsAmount; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealMapper.java index 4cbc3a8..01065a1 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderMealMapper.java @@ -3,12 +3,15 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.domain.TOrderMeal; +import com.ruoyi.system.query.TDataGeneratorMealQuery; import com.ruoyi.system.query.TDataStatisticsQuery; import com.ruoyi.system.query.TOrderMealQuery; import com.ruoyi.system.vo.*; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; +import java.util.Map; /** * <p> @@ -64,4 +67,25 @@ */ List<PersonnelStatisticsVO> personnelStatistics(@Param("query")TDataStatisticsQuery query); + /** + * 数据生成分页列表 + * @param query + * @param pageInfo + * @return + */ + List<TOrderMealVO> pageListGenerator(@Param("query")TDataGeneratorMealQuery query, @Param("pageInfo")PageInfo<TOrderMealVO> pageInfo); + + /** + * 查询餐饮数据生成详情金额统计 + * @param query + * @return + */ + Map<String, BigDecimal> getDataGeneratorMealDetail(@Param("query")TDataGeneratorMealQuery query); + + /** + * 导出餐饮数据生成详情 + * @param query + * @return + */ + List<TOrderMealVO> mealGeneratorExport(@Param("query")TDataGeneratorMealQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleMapper.java index 99ff756..675070b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderSaleMapper.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.domain.TOrderSale; +import com.ruoyi.system.query.TDataGeneratorSaleQuery; import com.ruoyi.system.query.TDataStatisticsQuery; import com.ruoyi.system.query.TOrderMealQuery; import com.ruoyi.system.query.TOrderSaleQuery; @@ -12,7 +13,9 @@ import com.ruoyi.system.vo.TOrderSaleVO; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; +import java.util.Map; /** * <p> @@ -59,4 +62,18 @@ * @return */ List<OrderTrendsVO> orderingTrends(@Param("query")TDataStatisticsQuery query); + + /** + * 查询生成销售数据详情统计 + * @param query + * @return + */ + Map<String, BigDecimal> getDataGeneratorMealDetail(@Param("query")TDataGeneratorSaleQuery query); + + /** + * 销售生成数据详情导出 + * @param query + * @return + */ + List<TOrderSaleVO> saleGeneratorExport(@Param("query")TDataGeneratorSaleQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderStockGoodsMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderStockGoodsMapper.java index 2a5de78..8613f69 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderStockGoodsMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderStockGoodsMapper.java @@ -2,6 +2,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.system.domain.TOrderStockGoods; +import com.ruoyi.system.query.TDataGeneratorStockQuery; +import org.apache.ibatis.annotations.Param; + +import java.util.Map; /** * <p> diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderStockMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderStockMapper.java index 0f5a81f..6dcdd99 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderStockMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TOrderStockMapper.java @@ -3,11 +3,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.domain.TOrderStock; +import com.ruoyi.system.query.TDataGeneratorStockQuery; import com.ruoyi.system.query.TOrderStockQuery; import com.ruoyi.system.vo.TOrderStockVO; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** * <p> @@ -26,4 +28,17 @@ * @return */ List<TOrderStockVO> pageList(@Param("query") TOrderStockQuery query, @Param("pageInfo")PageInfo<TOrderStockVO> pageInfo); + /** + * 统计支付金额 + * @param query + * @return + */ + Map<String, Object> getDataGeneratorStockDetail(@Param("query") TDataGeneratorStockQuery query); + + /** + * 进货生成数据详情导出 + * @param query + * @return + */ + List<TOrderStockVO> stockGeneratorExport(@Param("query")TDataGeneratorStockQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorMealQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorMealQuery.java new file mode 100644 index 0000000..66d7081 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorMealQuery.java @@ -0,0 +1,22 @@ +package com.ruoyi.system.query; + +import com.ruoyi.common.core.domain.model.TimeRangeQueryBody; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +@ApiModel(value = "餐饮数据生成详情Query") +public class TDataGeneratorMealQuery extends TimeRangeQueryBody { + + @ApiModelProperty(value = "数据生成id") + @NotNull(message = "数据生成id不能为空") + private Long generatorId; + + @ApiModelProperty(value = "支付方式") + private Integer payType; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorSaleQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorSaleQuery.java new file mode 100644 index 0000000..4b4a803 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorSaleQuery.java @@ -0,0 +1,26 @@ +package com.ruoyi.system.query; + +import com.ruoyi.common.core.domain.model.TimeRangeQueryBody; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +@ApiModel(value = "生成销售数据Query") +public class TDataGeneratorSaleQuery extends TimeRangeQueryBody { + + @ApiModelProperty(value = "支付方式 1=现金 2=支付宝 3=微信 4=银行卡 5=其他") + private Integer payType; + + @ApiModelProperty(value = "订单编号") + private String orderNum; + + @ApiModelProperty(value = "时间类型 1=今日 2=昨日 3=近7天 4=近30天") + private Integer timeType; + @ApiModelProperty(value = "数据生成id") + @NotNull(message = "数据生成id不能为空") + private Long generatorId; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorStockQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorStockQuery.java new file mode 100644 index 0000000..8ed91c0 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorStockQuery.java @@ -0,0 +1,23 @@ +package com.ruoyi.system.query; + +import com.ruoyi.common.core.domain.model.TimeRangeQueryBody; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +@ApiModel(value = "数据生成进货查询Query") +public class TDataGeneratorStockQuery extends TimeRangeQueryBody { + + @ApiModelProperty(value = "时间类型 1=今日 2=昨日 3=近7天 4=近30天") + private Integer timeType; + @ApiModelProperty(value = "数据生成id") + @NotNull(message = "数据生成id不能为空") + private Long generatorId; + + @ApiModelProperty(value = "订单编号") + private String orderNum; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TOrderSaleQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TOrderSaleQuery.java index 27d0831..dfd8f6e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TOrderSaleQuery.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TOrderSaleQuery.java @@ -1,5 +1,6 @@ package com.ruoyi.system.query; +import com.baomidou.mybatisplus.annotation.TableField; import com.ruoyi.common.core.domain.model.TimeRangeQueryBody; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -19,5 +20,6 @@ private Long shopId; @ApiModelProperty(value = "时间类型 1=今日 2=昨日 3=近7天 4=近30天") private Integer timeType; - + @ApiModelProperty(value = "数据生成id") + private Long generatorId; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TOrderStockQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TOrderStockQuery.java index 58bf99f..2d731d8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TOrderStockQuery.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TOrderStockQuery.java @@ -13,9 +13,10 @@ private String stockNum; @ApiModelProperty(value = "日期类型 1=今天 2=昨天 3=最近7天 4=最近30天") - private Integer type; + private Integer timeType; @ApiModelProperty(value = "店铺id") private Long shopId; - + @ApiModelProperty(value = "数据生成id") + private Long generatorId; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TDataGeneratorService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TDataGeneratorService.java index c31be79..70e76d4 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TDataGeneratorService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TDataGeneratorService.java @@ -5,10 +5,10 @@ import com.ruoyi.system.domain.TDataGenerator; import com.ruoyi.system.dto.OrderMealGeneratorDTO; import com.ruoyi.system.dto.OrderSaleGeneratorDTO; -import com.ruoyi.system.query.TDataGeneratorQuery; -import com.ruoyi.system.query.TDataStatisticsQuery; -import com.ruoyi.system.vo.SalesVolumeVO; -import com.ruoyi.system.vo.TDataGeneratorVO; +import com.ruoyi.system.query.*; +import com.ruoyi.system.vo.*; + +import java.util.List; /** * <p> @@ -43,4 +43,31 @@ * @return */ void dataCoverage(Long id); + /** + * 餐饮生成数据详情 + * @param query + * @return + */ + TDataGeneratorMealDetailVO mealGeneratorDataDetail(TDataGeneratorMealQuery query); + + /** + * 销售生成数据详情 + * @param query + * @return + */ + TDataGeneratorSaleDetailVO saleGeneratorDataDetail(TDataGeneratorSaleQuery query); + + /** + * 进货生成数据详情 + * @param query + * @return + */ + TDataGeneratorStockDetailVO stockGeneratorDataDetail(TDataGeneratorStockQuery query); + + /** + * 餐饮生成数据详情导出 + * @param query + * @return + */ + List<TOrderSaleVO> mealGeneratorExport(TDataGeneratorMealQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java index 56482bb..2ac5248 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java @@ -7,11 +7,14 @@ import com.ruoyi.system.dto.CheckoutDTO; import com.ruoyi.system.dto.OrderMealGeneratorDTO; import com.ruoyi.system.dto.TOrderMealDTO; +import com.ruoyi.system.query.TDataGeneratorMealQuery; import com.ruoyi.system.query.TDataStatisticsQuery; import com.ruoyi.system.query.TOrderMealQuery; import com.ruoyi.system.vo.*; +import java.math.BigDecimal; import java.util.List; +import java.util.Map; /** * <p> @@ -90,4 +93,26 @@ * @return */ List<PersonnelStatisticsVO> personnelStatistics(TDataStatisticsQuery query); + + /** + * 查询餐饮生成详情订单列表 + * @param query + * @return + */ + PageInfo<TOrderMealVO> pageListGenerator(TDataGeneratorMealQuery query); + + /** + * 查询餐饮数据生成统计金额 + * @param query + * @return + */ + Map<String, BigDecimal> getDataGeneratorMealDetail(TDataGeneratorMealQuery query); + + /** + * 餐饮生成数据详情导出 + * @param query + * @return + */ + List<TOrderMealVO> mealGeneratorExport(TDataGeneratorMealQuery query); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleService.java index 5b13661..45e9fdb 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderSaleService.java @@ -4,12 +4,15 @@ import com.ruoyi.common.basic.PageInfo; import com.ruoyi.system.domain.TOrderSale; import com.ruoyi.system.dto.TOrderSaleDTO; +import com.ruoyi.system.query.TDataGeneratorSaleQuery; import com.ruoyi.system.query.TDataStatisticsQuery; import com.ruoyi.system.query.TOrderMealQuery; import com.ruoyi.system.query.TOrderSaleQuery; import com.ruoyi.system.vo.*; +import java.math.BigDecimal; import java.util.List; +import java.util.Map; /** * <p> @@ -68,4 +71,18 @@ * @return */ List<OrderTrendsVO> orderingTrends(TDataStatisticsQuery query); + + /** + * 销售生成数据详情 + * @param query + * @return + */ + Map<String, BigDecimal> getDataGeneratorMealDetail(TDataGeneratorSaleQuery query); + + /** + * 销售生成数据详情导出 + * @param query + * @return + */ + List<TOrderSaleVO> saleGeneratorExport(TDataGeneratorSaleQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderStockGoodsService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderStockGoodsService.java index 6089cc2..d94f075 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderStockGoodsService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderStockGoodsService.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.domain.TOrderStockGoods; +import com.ruoyi.system.query.TDataGeneratorStockQuery; + +import java.util.Map; /** * <p> diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderStockService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderStockService.java index 15c1197..78171a2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderStockService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderStockService.java @@ -5,8 +5,12 @@ import com.ruoyi.system.domain.TOrderStock; import com.ruoyi.system.dto.TOrderSaleDTO; import com.ruoyi.system.dto.TOrderStockDTO; +import com.ruoyi.system.query.TDataGeneratorStockQuery; import com.ruoyi.system.query.TOrderStockQuery; import com.ruoyi.system.vo.TOrderStockVO; + +import java.util.List; +import java.util.Map; /** * <p> @@ -36,4 +40,17 @@ * @return */ PageInfo<TOrderStockVO> pageList(TOrderStockQuery query); + /** + * 统计支付金额 + * @param query + * @return + */ + Map<String, Object> getDataGeneratorStockDetail(TDataGeneratorStockQuery query); + + /** + * 进货生成数据详情导出 + * @param query + * @return + */ + List<TOrderStockVO> stockGeneratorExport(TDataGeneratorStockQuery query); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java index b1e5abd..6f8a49d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java @@ -13,10 +13,10 @@ import com.ruoyi.system.dto.OrderMealGeneratorDTO; import com.ruoyi.system.dto.OrderSaleGeneratorDTO; import com.ruoyi.system.mapper.TDataGeneratorMapper; -import com.ruoyi.system.query.TDataGeneratorQuery; +import com.ruoyi.system.query.*; import com.ruoyi.system.service.*; -import com.ruoyi.system.vo.TDataGeneratorVO; -import com.ruoyi.system.vo.TFoundationConfigVO; +import com.ruoyi.system.vo.*; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -245,6 +245,7 @@ // 添加销售订单数 List<TOrderSale> orderSales = dto.getOrderSales(); + orderSales.forEach(e->e.setGeneratorId(dataGenerator.getId())); List<TOrderSaleGoods> orderSaleGoods = orderSales.stream().map(TOrderSale::getOrderSaleGoods).flatMap(Collection::stream).collect(Collectors.toList()); // 生成进货数据 @@ -421,15 +422,15 @@ tDataGeneratorVO.setTotalRevenue(money); } }else { - List<TOrderStock> orderStocks = orderStockService.list(Wrappers.lambdaQuery(TOrderStock.class) - .in(TOrderStock::getGeneratorId, ids)); - List<Long> stockIds = orderStocks.stream().map(TOrderStock::getId).collect(Collectors.toList()); - List<TOrderStockGoods> stockGoods = orderStockGoodsService.list(Wrappers.lambdaQuery(TOrderStockGoods.class) - .in(TOrderStockGoods::getOrderId, stockIds)); + List<TOrderSale> orderSales = orderSaleService.list(Wrappers.lambdaQuery(TOrderSale.class) + .in(TOrderSale::getGeneratorId, ids)); + List<Long> saleIds = orderSales.stream().map(TOrderSale::getId).collect(Collectors.toList()); + List<TOrderSaleGoods> orderSaleGoods = orderSaleGoodsService.list(Wrappers.lambdaQuery(TOrderSaleGoods.class) + .in(TOrderSaleGoods::getOrderId, saleIds)); for (TDataGeneratorVO tDataGeneratorVO : list) { - List<Long> collect = orderStocks.stream().filter(e -> e.getGeneratorId().equals(tDataGeneratorVO.getId())).map(TOrderStock::getId).collect(Collectors.toList()); - BigDecimal money = stockGoods.stream().filter(e -> collect.contains(e.getOrderId())) - .reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getStockPrice().multiply(new BigDecimal(y.getStockCount()))), BigDecimal::add); + List<Long> collect = orderSales.stream().filter(e -> e.getGeneratorId().equals(tDataGeneratorVO.getId())).map(TOrderSale::getId).collect(Collectors.toList()); + BigDecimal money = orderSaleGoods.stream().filter(e -> collect.contains(e.getOrderId())) + .reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getGoodsCostPrice().multiply(new BigDecimal(y.getGoodsCount()))), BigDecimal::add); tDataGeneratorVO.setTotalRevenue(money); } } @@ -454,6 +455,82 @@ } } + @Override + public TDataGeneratorMealDetailVO mealGeneratorDataDetail(TDataGeneratorMealQuery query) { + // 查询餐饮数据生成详情 + TDataGenerator dataGenerator = this.getById(query.getGeneratorId()); + TDataGeneratorMealDetailVO data = new TDataGeneratorMealDetailVO(); + BeanUtils.copyProperties(dataGenerator,data); + // 查询订单 + PageInfo<TOrderMealVO> pageInfo = orderMealService.pageListGenerator(query); + data.setOrderMealList(pageInfo); + // 统计支付金额 + Map<String, BigDecimal> map = orderMealService.getDataGeneratorMealDetail(query); + BigDecimal money = map.get("moneyPay"); + BigDecimal card = map.get("cardPay"); + BigDecimal weiXin = map.get("weiXinPay"); + BigDecimal ali = map.get("aliPay"); + BigDecimal other = map.get("otherPay"); + data.setMoneyPayAmount(money); + data.setCardPayAmount(card); + data.setWeiXinPayAmount(weiXin); + data.setAliPayAmount(ali); + data.setOtherPayAmount(other); + return data; + } + + @Override + public TDataGeneratorSaleDetailVO saleGeneratorDataDetail(TDataGeneratorSaleQuery query) { + // 查询餐饮数据生成详情 + TDataGeneratorSaleDetailVO data = new TDataGeneratorSaleDetailVO(); + // 查询订单 + TOrderSaleQuery orderSaleQuery = new TOrderSaleQuery(); + orderSaleQuery.setTimeType(query.getTimeType()); + orderSaleQuery.setPayType(query.getPayType()); + orderSaleQuery.setOrderNum(query.getOrderNum()); + orderSaleQuery.setGeneratorId(query.getGeneratorId()); + PageInfo<TOrderSaleVO> pageInfo = orderSaleService.pageList(orderSaleQuery); + data.setOrderMealList(pageInfo); + // 统计支付金额 + Map<String, BigDecimal> map = orderSaleService.getDataGeneratorMealDetail(query); + BigDecimal money = map.get("moneyPay"); + BigDecimal card = map.get("cardPay"); + BigDecimal weiXin = map.get("weiXinPay"); + BigDecimal ali = map.get("aliPay"); + BigDecimal other = map.get("otherPay"); + data.setMoneyPayAmount(money); + data.setCardPayAmount(card); + data.setWeiXinPayAmount(weiXin); + data.setAliPayAmount(ali); + data.setOtherPayAmount(other); + return data; + } + + @Override + public TDataGeneratorStockDetailVO stockGeneratorDataDetail(TDataGeneratorStockQuery query) { + // 查询餐饮数据生成详情 + TDataGeneratorStockDetailVO data = new TDataGeneratorStockDetailVO(); + // 查询订单 + TOrderStockQuery orderStockQuery = new TOrderStockQuery(); + orderStockQuery.setGeneratorId(query.getGeneratorId()); + orderStockQuery.setTimeType(query.getTimeType()); + orderStockQuery.setStockNum(query.getOrderNum()); + PageInfo<TOrderStockVO> pageInfo = orderStockService.pageList(orderStockQuery); + data.setOrderStockVOList(pageInfo); + // 统计支付金额 + Map<String, Object> map = orderStockService.getDataGeneratorStockDetail(query); + Integer totalStock = Integer.parseInt(map.get("totalStock").toString()); + BigDecimal stockAmountSum = new BigDecimal(map.get("stockAmountSum").toString()); + data.setTotalStock(totalStock); + data.setStockAmountSum(stockAmountSum); + return data; + } + + @Override + public List<TOrderSaleVO> mealGeneratorExport(TDataGeneratorMealQuery query) { + return null; + } + private int getRandomPayType(Integer size,BigDecimal count) { BigDecimal bigDecimal = new BigDecimal(size).multiply(count.divide(new BigDecimal(100))).setScale(0, RoundingMode.HALF_UP); return Integer.parseInt(bigDecimal.toString()); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java index b71b796..b974d15 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java @@ -10,6 +10,7 @@ import com.ruoyi.system.dto.*; import com.ruoyi.system.mapper.TOrderMealGoodsMapper; import com.ruoyi.system.mapper.TOrderMealMapper; +import com.ruoyi.system.query.TDataGeneratorMealQuery; import com.ruoyi.system.query.TDataStatisticsQuery; import com.ruoyi.system.query.TOrderMealQuery; import com.ruoyi.system.service.*; @@ -295,4 +296,49 @@ return this.baseMapper.personnelStatistics(query); } + @Override + public PageInfo<TOrderMealVO> pageListGenerator(TDataGeneratorMealQuery query) { + PageInfo<TOrderMealVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize()); + List<TOrderMealVO> list = this.baseMapper.pageListGenerator(query,pageInfo); + // 查询商品信息 + for (TOrderMealVO tOrderMealVO : list) { + List<TOrderMealGoods> list1 = orderMealGoodsService.list(Wrappers.lambdaQuery(TOrderMealGoods.class) + .eq(TOrderMealGoods::getOrderId, tOrderMealVO.getId())); + tOrderMealVO.setOrderMealGoods(list1); + Map<String, List<TOrderMealGoods>> map = list1.stream().collect(Collectors.groupingBy(TOrderMealGoods::getTypeName)); + List<String> goodsList = new ArrayList<>(); + map.forEach((k,v)->{ + goodsList.add(k+":"+v.stream().map(item->item.getGoodsName()+" "+(item.getGoodsSalePrice().multiply(new BigDecimal(item.getGoodsCount())))).collect(Collectors.joining(","))); + }); + tOrderMealVO.setGoodsList(goodsList); + } + pageInfo.setRecords(list); + return pageInfo; + } + + @Override + public Map<String, BigDecimal> getDataGeneratorMealDetail(TDataGeneratorMealQuery query) { + return this.baseMapper.getDataGeneratorMealDetail(query); + } + + @Override + public List<TOrderMealVO> mealGeneratorExport(TDataGeneratorMealQuery query) { + List<TOrderMealVO> list = this.baseMapper.mealGeneratorExport(query); + List<Long> ids = list.stream().map(TOrderMealVO::getId).collect(Collectors.toList()); + List<TOrderMealGoods> list1 = orderMealGoodsService.list(Wrappers.lambdaQuery(TOrderMealGoods.class) + .in(TOrderMealGoods::getOrderId,ids)); + // 查询商品信息 + for (TOrderMealVO tOrderMealVO : list) { + List<TOrderMealGoods> collect = list1.stream().filter(e -> e.getOrderId().equals(tOrderMealVO.getId())).collect(Collectors.toList()); + tOrderMealVO.setOrderMealGoods(collect); + Map<String, List<TOrderMealGoods>> map = collect.stream().collect(Collectors.groupingBy(TOrderMealGoods::getTypeName)); + List<String> goodsList = new ArrayList<>(); + map.forEach((k,v)->{ + goodsList.add(k+":"+v.stream().map(item->item.getGoodsName()+" "+(item.getGoodsSalePrice().multiply(new BigDecimal(item.getGoodsCount())))).collect(Collectors.joining(","))); + }); + tOrderMealVO.setGoodsList(goodsList); + } + return list; + } + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java index f4df429..54de246 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java @@ -9,6 +9,7 @@ import com.ruoyi.system.domain.*; import com.ruoyi.system.dto.TOrderSaleDTO; import com.ruoyi.system.mapper.TOrderSaleMapper; +import com.ruoyi.system.query.TDataGeneratorSaleQuery; import com.ruoyi.system.query.TDataStatisticsQuery; import com.ruoyi.system.query.TOrderMealQuery; import com.ruoyi.system.query.TOrderSaleQuery; @@ -92,6 +93,13 @@ } PageInfo<TOrderSaleVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize()); List<TOrderSaleVO> list = this.baseMapper.pageList(query,pageInfo); + List<Long> ids = list.stream().map(TOrderSaleVO::getId).collect(Collectors.toList()); + List<TOrderSaleGoods> list1 = orderSaleGoodsService.list(Wrappers.lambdaQuery(TOrderSaleGoods.class) + .in(TOrderSaleGoods::getOrderId, ids)); + list.forEach(e->{ + e.setGoodsAmount(list1.stream().filter(m->m.getOrderId().equals(e.getId())).map(TOrderSaleGoods::getGoodsSalePrice).reduce(BigDecimal::add).get()); + e.setOrderSaleGoods(list1.stream().filter(m->m.getOrderId().equals(e.getId())).collect(Collectors.toList())); + }); pageInfo.setRecords(list); return pageInfo; } @@ -185,4 +193,51 @@ public List<OrderTrendsVO> orderingTrends(TDataStatisticsQuery query) { return this.baseMapper.orderingTrends(query); } + + @Override + public Map<String, BigDecimal> getDataGeneratorMealDetail(TDataGeneratorSaleQuery query) { + return this.baseMapper.getDataGeneratorMealDetail(query); + } + + @Override + public List<TOrderSaleVO> saleGeneratorExport(TDataGeneratorSaleQuery query) { + if(Objects.nonNull(query.getTimeType())){ + LocalDateTime startTime = null; + LocalDateTime endTime = null; + switch (query.getTimeType()){ + case 1: + // 今日 + startTime = LocalDateTime.MIN; + endTime = LocalDateTime.MAX; + break; + case 2: + // 昨日 + startTime = LocalDateTime.now().minusDays(1); + endTime = LocalDateTime.now().minusDays(1); + break; + case 3: + // 近7天 + startTime = LocalDateTime.now().minusDays(7); + endTime = LocalDateTime.now(); + break; + case 4: + // 近30天 + startTime = LocalDateTime.now().minusDays(30); + endTime = LocalDateTime.now(); + break; + } + query.setStartTime(startTime); + query.setEndTime(endTime); + } + List<TOrderSaleVO> list = this.baseMapper.saleGeneratorExport(query); + List<Long> ids = list.stream().map(TOrderSaleVO::getId).collect(Collectors.toList()); + List<TOrderSaleGoods> list1 = orderSaleGoodsService.list(Wrappers.lambdaQuery(TOrderSaleGoods.class) + .in(TOrderSaleGoods::getOrderId,ids)); + // 查询商品信息 + for (TOrderSaleVO orderSaleVO : list) { + List<TOrderSaleGoods> collect = list1.stream().filter(e -> e.getOrderId().equals(orderSaleVO.getId())).collect(Collectors.toList()); + orderSaleVO.setOrderSaleGoods(collect); + } + return list; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockGoodsServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockGoodsServiceImpl.java index eabc5ea..d17253a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockGoodsServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockGoodsServiceImpl.java @@ -3,9 +3,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.domain.TOrderStockGoods; import com.ruoyi.system.mapper.TOrderStockGoodsMapper; +import com.ruoyi.system.query.TDataGeneratorStockQuery; import com.ruoyi.system.service.TOrderStockGoodsService; import org.springframework.stereotype.Service; +import java.util.Map; + /** * <p> * 进货单商品 服务实现类 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java index a2d8b03..97887c2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java @@ -11,6 +11,7 @@ import com.ruoyi.system.dto.TOrderSaleDTO; import com.ruoyi.system.dto.TOrderStockDTO; import com.ruoyi.system.mapper.TOrderStockMapper; +import com.ruoyi.system.query.TDataGeneratorStockQuery; import com.ruoyi.system.query.TOrderStockQuery; import com.ruoyi.system.service.TOrderStockGoodsService; import com.ruoyi.system.service.TOrderStockService; @@ -21,6 +22,8 @@ import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -67,20 +70,33 @@ public PageInfo<TOrderStockVO> pageList(TOrderStockQuery query) { // 判断时间 - if (query.getType() != null) { - if (query.getType() == 1) { - query.setStartTime(LocalDateTime.now()); - query.setEndTime(LocalDateTime.now()); - } else if (query.getType() == 2) { - query.setStartTime(LocalDateTime.now().minusDays(1)); - query.setEndTime(LocalDateTime.now().minusDays(1)); - } else if (query.getType() == 3) { - query.setStartTime(LocalDateTime.now().minusDays(7)); - query.setEndTime(LocalDateTime.now()); - }else { - query.setStartTime(LocalDateTime.now().minusDays(30)); - query.setEndTime(LocalDateTime.now()); + if(Objects.nonNull(query.getTimeType())){ + LocalDateTime startTime = null; + LocalDateTime endTime = null; + switch (query.getTimeType()){ + case 1: + // 今日 + startTime = LocalDateTime.MIN; + endTime = LocalDateTime.MAX; + break; + case 2: + // 昨日 + startTime = LocalDateTime.now().minusDays(1); + endTime = LocalDateTime.now().minusDays(1); + break; + case 3: + // 近7天 + startTime = LocalDateTime.now().minusDays(7); + endTime = LocalDateTime.now(); + break; + case 4: + // 近30天 + startTime = LocalDateTime.now().minusDays(30); + endTime = LocalDateTime.now(); + break; } + query.setStartTime(startTime); + query.setEndTime(endTime); } PageInfo<TOrderStockVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize()); List<TOrderStockVO> list = this.baseMapper.pageList(query,pageInfo); @@ -95,4 +111,51 @@ pageInfo.setRecords(list); return pageInfo; } + + @Override + public Map<String, Object> getDataGeneratorStockDetail(TDataGeneratorStockQuery query) { + return this.baseMapper.getDataGeneratorStockDetail(query); + } + + @Override + public List<TOrderStockVO> stockGeneratorExport(TDataGeneratorStockQuery query) { + if(Objects.nonNull(query.getTimeType())){ + LocalDateTime startTime = null; + LocalDateTime endTime = null; + switch (query.getTimeType()){ + case 1: + // 今日 + startTime = LocalDateTime.MIN; + endTime = LocalDateTime.MAX; + break; + case 2: + // 昨日 + startTime = LocalDateTime.now().minusDays(1); + endTime = LocalDateTime.now().minusDays(1); + break; + case 3: + // 近7天 + startTime = LocalDateTime.now().minusDays(7); + endTime = LocalDateTime.now(); + break; + case 4: + // 近30天 + startTime = LocalDateTime.now().minusDays(30); + endTime = LocalDateTime.now(); + break; + } + query.setStartTime(startTime); + query.setEndTime(endTime); + } + List<TOrderStockVO> list = this.baseMapper.stockGeneratorExport(query); + // 查询商品 + List<Long> orderIds = list.stream().map(TOrderStockVO::getId).collect(Collectors.toList()); + List<TOrderStockGoods> orderStockGoods = tOrderStockGoodsService.list(Wrappers.lambdaQuery(TOrderStockGoods.class) + .in(TOrderStockGoods::getOrderId, orderIds)); + list.forEach(orderSale -> { + List<TOrderStockGoods> collect = orderStockGoods.stream().filter(orderSaleGoods -> orderSaleGoods.getOrderId().equals(orderSale.getId())).collect(Collectors.toList()); + orderSale.setOrderStockGoods(collect); + }); + return list; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorMealDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorMealDetailVO.java new file mode 100644 index 0000000..ea1291a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorMealDetailVO.java @@ -0,0 +1,29 @@ +package com.ruoyi.system.vo; + +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.system.domain.TDataGenerator; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@ApiModel(value = "餐饮数据生成详情VO") +public class TDataGeneratorMealDetailVO extends TDataGenerator { + + @ApiModelProperty(value = "现金支付金额") + private BigDecimal moneyPayAmount; + @ApiModelProperty(value = "微信支付金额") + private BigDecimal weiXinPayAmount; + @ApiModelProperty(value = "其他支付金额") + private BigDecimal otherPayAmount; + @ApiModelProperty(value = "支付宝支付金额") + private BigDecimal aliPayAmount; + @ApiModelProperty(value = "银行卡支付金额") + private BigDecimal cardPayAmount; + + @ApiModelProperty(value = "订单列表") + private PageInfo<TOrderMealVO> orderMealList; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorSaleDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorSaleDetailVO.java new file mode 100644 index 0000000..43ab283 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorSaleDetailVO.java @@ -0,0 +1,29 @@ +package com.ruoyi.system.vo; + +import com.ruoyi.common.basic.PageInfo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +@ApiModel(value = "销售数据生成VO") +public class TDataGeneratorSaleDetailVO implements Serializable { + + @ApiModelProperty(value = "现金支付金额") + private BigDecimal moneyPayAmount; + @ApiModelProperty(value = "微信支付金额") + private BigDecimal weiXinPayAmount; + @ApiModelProperty(value = "其他支付金额") + private BigDecimal otherPayAmount; + @ApiModelProperty(value = "支付宝支付金额") + private BigDecimal aliPayAmount; + @ApiModelProperty(value = "银行卡支付金额") + private BigDecimal cardPayAmount; + + @ApiModelProperty(value = "订单列表") + private PageInfo<TOrderSaleVO> orderMealList; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorStockDetailVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorStockDetailVO.java new file mode 100644 index 0000000..d82c24a --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorStockDetailVO.java @@ -0,0 +1,23 @@ +package com.ruoyi.system.vo; + +import com.ruoyi.common.basic.PageInfo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +@ApiModel(value = "进货数据生成返回VO") +public class TDataGeneratorStockDetailVO implements Serializable { + + @ApiModelProperty(value = "进货总数量") + private Integer totalStock; + @ApiModelProperty(value = "进货总价") + private BigDecimal stockAmountSum; + + @ApiModelProperty(value = "订单列表") + private PageInfo<TOrderStockVO> orderStockVOList; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TOrderSaleVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TOrderSaleVO.java index 6223333..676bbb7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TOrderSaleVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TOrderSaleVO.java @@ -6,12 +6,15 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.List; @Data @ApiModel(value = "销售订单VO") public class TOrderSaleVO extends TOrderSale { + @ApiModelProperty(value = "货品总价") + private BigDecimal goodsAmount; @ApiModelProperty(value = "菜品集合") private List<TOrderSaleGoods> orderSaleGoods; diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml index fd75947..c362365 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -25,7 +25,7 @@ <sql id="selectRoleVo"> select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly, - r.status, r.del_flag, r.create_time, r.remark,r.postType,r.removeDays + r.status, r.del_flag, r.create_time, r.remark from sys_role r left join sys_user_role ur on ur.role_id = r.role_id left join sys_user u on u.user_id = ur.user_id diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 07b07b7..8a2a173 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -23,7 +23,8 @@ <result property="updateBy" column="update_by" /> <result property="updateTime" column="update_time" /> <result property="remark" column="remark" /> - <result property="ifBlack" column="ifBlack" /> + <result property="roleType" column="roleType" /> + <result property="objectId" column="objectId" /> <association property="dept" javaType="SysDept" resultMap="deptResult" /> <collection property="roles" javaType="java.util.List" resultMap="RoleResult" /> </resultMap> @@ -48,8 +49,10 @@ </resultMap> <sql id="selectUserVo"> - select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, - d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, + select u.user_id, u.dept_id, u.user_name , u.nick_name , u.email , u.avatar , + u.phonenumber , u.password , u.sex , u.status , u.del_flag , u.login_ip , + u.login_date , u.create_by , u.create_time , u.remark ,u.roleType , u.objectId , + d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status from sys_user u left join sys_dept d on u.dept_id = d.dept_id diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml index a748ba9..6d1c034 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml @@ -20,18 +20,18 @@ <result column="status" property="status" /> <result column="isCover" property="isCover" /> <result column="shopId" property="shopId" /> - <result column="shopId" property="shopId" /> + <result column="generatorId" property="generatorId" /> </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> id, boardId, mealType, mealPerson, orderMoney, payMoney, payType, createTime, updateTime, disabled, - createBy, updateBy, orderNum, status,isCover,shopId + createBy, updateBy, orderNum, status,isCover,shopId,generatorId </sql> <select id="pageList" resultType="com.ruoyi.system.vo.TOrderMealVO"> select tom.id, tom.boardId, tom.mealType, tom.mealPerson, tom.orderMoney, tom.payMoney, tom.payType, tom.createTime, tom.updateTime, tom.disabled, - tom.createBy, tom.updateBy, tom.orderNum, tom.status,tom.isCover,tom.shopId,tb.boardName + tom.createBy, tom.updateBy, tom.orderNum, tom.status,tom.isCover,tom.shopId,tom.generatorId,tb.boardName from t_order_meal tom left join t_board tb on tb.id = tom.boardId <where> @@ -164,5 +164,69 @@ AND tom.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> </select> + <select id="pageListGenerator" resultType="com.ruoyi.system.vo.TOrderMealVO"> + select + tom.id, tom.boardId, tom.mealType, tom.mealPerson, tom.orderMoney, tom.payMoney, tom.payType, tom.createTime, tom.updateTime, tom.disabled, + tom.createBy, tom.updateBy, tom.orderNum, tom.status,tom.isCover,tom.shopId,tom.generatorId,tb.boardName + from t_order_meal tom + left join t_board tb on tb.id = tom.boardId + <where> + <if test="query.generatorId != null"> + and tom.generatorId = #{query.generatorId} + </if> + <if test="query.payType != null"> + and tom.payType = #{query.payType} + </if> + <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> + AND (tom.createTime BETWEEN #{query.startTime} AND #{query.endTime}) + </if> + AND tom.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + ORDER BY tom.createTime DESC + </select> + <select id="getDataGeneratorMealDetail" resultType="java.util.Map"> + SELECT + SUM(CASE WHEN payType = 1 THEN payMoney ELSE 0 END) AS moneyPay, + SUM(CASE WHEN payType = 2 THEN payMoney ELSE 0 END) AS aliPay, + SUM(CASE WHEN payType = 3 THEN payMoney ELSE 0 END) AS weiXinPay, + SUM(CASE WHEN payType = 4 THEN payMoney ELSE 0 END) AS cardPay, + SUM(CASE WHEN payType = 5 THEN payMoney ELSE 0 END) AS otherPay + from t_order_meal + <where> + <if test="query.dataId != null"> + and generatorId = #{query.dataId} + </if> + <if test="query.payType != null"> + and payType = #{query.payType} + </if> + <if test="query.generatorId != null"> + and generatorId = #{query.generatorId} + </if> + <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> + AND (createTime BETWEEN #{query.startTime} AND #{query.endTime}) + </if> + AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + </select> + <select id="mealGeneratorExport" resultType="com.ruoyi.system.vo.TOrderMealVO"> + select + tom.id, tom.boardId, tom.mealType, tom.mealPerson, tom.orderMoney, tom.payMoney, tom.payType, tom.createTime, tom.updateTime, tom.disabled, + tom.createBy, tom.updateBy, tom.orderNum, tom.status,tom.isCover,tom.shopId,tb.boardName + from t_order_meal tom + left join t_board tb on tb.id = tom.boardId + <where> + <if test="query.payType != null"> + and tom.payType = #{query.payType} + </if> + <if test="query.generatorId != null"> + and tom.generatorId = #{query.generatorId} + </if> + <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> + AND (tom.createTime BETWEEN #{query.startTime} AND #{query.endTime}) + </if> + AND tom.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + ORDER BY tom.createTime DESC + </select> </mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml index 2405905..fe85d60 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml @@ -17,14 +17,15 @@ <result column="orderMoney" property="orderMoney" /> <result column="payMoney" property="payMoney" /> <result column="shopId" property="shopId" /> + <result column="generatorId" property="generatorId" /> </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> - id, orderTime, remark, createTime, updateTime, disabled, createBy, updateBy, orderNum, status,orderMoney,payMoney,shopId + id, orderTime, remark, createTime, updateTime, disabled, createBy, updateBy, orderNum, status,orderMoney,payMoney,shopId,generatorId </sql> <select id="pageList" resultType="com.ruoyi.system.vo.TOrderSaleVO"> - select id, orderTime, remark, createTime, updateTime, disabled, createBy, updateBy, orderNum, status,orderMoney,payMoney,shopId + select id, orderTime, remark, createTime, updateTime, disabled, createBy, updateBy, orderNum, status,orderMoney,payMoney,shopId,generatorId from t_order_sale <where> <if test="query.orderNum != null and query.orderNum != ''"> @@ -38,6 +39,9 @@ </if> <if test="query.shopId != null"> and shopId = #{query.shopId} + </if> + <if test="query.generatorId != null"> + and generatorId = #{query.generatorId} </if> <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> AND (createTime BETWEEN #{query.startTime} AND #{query.endTime}) @@ -128,5 +132,49 @@ AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> </select> + <select id="getDataGeneratorMealDetail" resultType="java.util.Map"> + SELECT + SUM(CASE WHEN payType = 1 THEN payMoney ELSE 0 END) AS moneyPay, + SUM(CASE WHEN payType = 2 THEN payMoney ELSE 0 END) AS aliPay, + SUM(CASE WHEN payType = 3 THEN payMoney ELSE 0 END) AS weiXinPay, + SUM(CASE WHEN payType = 4 THEN payMoney ELSE 0 END) AS cardPay, + SUM(CASE WHEN payType = 5 THEN payMoney ELSE 0 END) AS otherPay + from t_order_sale + <where> + <if test="query.generatorId != null"> + and generatorId = #{query.generatorId} + </if> + <if test="query.orderNum != null and query.orderNum != ''"> + AND orderNum LIKE concat('%', #{query.orderNum}, '%') + </if> + <if test="query.payType != null"> + and payType = #{query.payType} + </if> + <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> + AND (createTime BETWEEN #{query.startTime} AND #{query.endTime}) + </if> + AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + </select> + <select id="saleGeneratorExport" resultType="com.ruoyi.system.vo.TOrderSaleVO"> + select id, orderTime, remark, createTime, updateTime, disabled, createBy, updateBy, orderNum, status,orderMoney,payMoney,shopId + from t_order_sale + <where> + <if test="query.generatorId != null"> + and generatorId = #{query.generatorId} + </if> + <if test="query.orderNum != null and query.orderNum != ''"> + AND orderNum LIKE concat('%', #{query.orderNum}, '%') + </if> + <if test="query.payType != null"> + and payType = #{query.payType} + </if> + <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''"> + AND (createTime BETWEEN #{query.startTime} AND #{query.endTime}) + </if> + AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + ORDER BY orderTime DESC + </select> </mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderStockGoodsMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderStockGoodsMapper.xml index aac76e5..a3f11fa 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TOrderStockGoodsMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TOrderStockGoodsMapper.xml @@ -12,12 +12,11 @@ <result column="salePrice" property="salePrice" /> <result column="goodsPicture" property="goodsPicture" /> <result column="stockCount" property="stockCount" /> - <result column="stockPrice" property="stockPrice" /> </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> - id, orderId, goodsNum, goodsName, costPrice, salePrice, goodsPicture, stockCount, stockPrice + id, orderId, goodsNum, goodsName, costPrice, salePrice, goodsPicture, stockCount </sql> </mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderStockMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderStockMapper.xml index 0e51b97..c11c696 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TOrderStockMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TOrderStockMapper.xml @@ -14,11 +14,12 @@ <result column="updateBy" property="updateBy" /> <result column="isCover" property="isCover" /> <result column="shopId" property="shopId" /> + <result column="generatorId" property="generatorId" /> </resultMap> <!-- 通用查询结果列 --> <sql id="Base_Column_List"> - id, stockNum, stockTime, createTime, updateTime, disabled, createBy, updateBy,isCover,shopId + id, stockNum, stockTime, createTime, updateTime, disabled, createBy, updateBy,isCover,shopId,generatorId </sql> <select id="pageList" resultType="com.ruoyi.system.vo.TOrderStockVO"> SELECT <include refid="Base_Column_List"></include> @@ -30,6 +31,44 @@ <if test="query.shopId != null"> AND shopId = #{query.shopId} </if> + <if test="query.generatorId != null"> + AND generatorId = #{query.generatorId} + </if> + <if test="query.endTime != null and query.startTime != null"> + AND (stockTime BETWEEN #{query.startTime} and #{query.endTime}) + </if> + AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + ORDER BY createTime DESC + </select> + <select id="getDataGeneratorStockDetail" resultType="java.util.Map"> + SELECT + SUM(payMoney) AS stockAmountSum, + COUNT(id) AS totalStock + from t_order_stock + <where> + <if test="query.stockNum != null and query.stockNum != ''"> + AND stockNum LIKE concat('%',#{query.stockNum},'%') + </if> + <if test="query.generatorId != null"> + AND generatorId = #{query.generatorId} + </if> + <if test="query.endTime != null and query.startTime != null"> + AND (stockTime BETWEEN #{query.startTime} and #{query.endTime}) + </if> + AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} + </where> + </select> + <select id="stockGeneratorExport" resultType="com.ruoyi.system.vo.TOrderStockVO"> + SELECT <include refid="Base_Column_List"></include> + FROM t_order_stock + <where> + <if test="query.stockNum != null and query.stockNum != ''"> + AND stockNum LIKE concat('%',#{query.stockNum},'%') + </if> + <if test="query.generatorId != null"> + AND generatorId = #{query.generatorId} + </if> <if test="query.endTime != null and query.startTime != null"> AND (stockTime BETWEEN #{query.startTime} and #{query.endTime}) </if> -- Gitblit v1.7.1