From 66a4d910a33d1273427b513e008bd9cd4c5d4054 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期一, 23 九月 2024 19:04:15 +0800
Subject: [PATCH] 修改接口

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java       |   57 ++++----
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationPersonServiceImpl.java |   13 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TShopController.java                |   27 +++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java        |   90 +++++++++---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java    |   72 +++++++--
 ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml                         |   10 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java          |   49 ++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java           |   22 +-
 ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderSaleAndGoodsExportExcel.java      |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java        |    4 
 ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml                         |   13 +
 ruoyi-system/src/main/resources/mapper/system/TOrderStockMapper.xml                        |   19 +-
 ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorSaleQuery.java             |    1 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/SysRoleDTO.java                            |    3 
 ruoyi-system/src/main/resources/mapper/system/TOrderSaleGoodsMapper.xml                    |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java           |    4 
 ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml                            |    2 
 17 files changed, 278 insertions(+), 112 deletions(-)

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 f889d76..fcb3bce 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
@@ -5,6 +5,7 @@
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.domain.TBoard;
 import com.ruoyi.system.domain.TShop;
@@ -22,6 +23,8 @@
 
 import java.util.List;
 import java.util.Objects;
+
+import static com.ruoyi.common.core.domain.AjaxResult.error;
 
 /**
  * <p>
@@ -64,6 +67,17 @@
     @ApiOperation( value = "添加店铺信息")
     @PostMapping(value = "/add")
     public AjaxResult<String> add(@RequestBody TShopDTO dto) {
+        SysUser user = new SysUser();
+        user.setUserName(dto.getAccount());
+        user.setPhonenumber(dto.getAccount());
+        if (!userService.checkUserNameUnique(user))
+        {
+            return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在");
+        }
+        else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
+        {
+            return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
+        }
         shopService.save(dto);
         // 添加账号
         Long userId = userService.addAccount(dto);
@@ -78,6 +92,17 @@
     @ApiOperation( value = "编辑店铺信息")
     @PostMapping(value = "/edit")
     public AjaxResult<String> edit(@RequestBody TShopDTO dto) {
+        SysUser user = new SysUser();
+        user.setUserName(dto.getAccount());
+        user.setPhonenumber(dto.getAccount());
+        if (!userService.checkUserNameUnique(user))
+        {
+            return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在");
+        }
+        else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
+        {
+            return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
+        }
         shopService.updateById(dto);
         userService.updateAccount(dto);
         return AjaxResult.success();
@@ -106,7 +131,7 @@
     public AjaxResult<TShop> getDetailByUserId() {
         Integer roleType = tokenService.getLoginUser().getRoleType();
         if(roleType == 1){
-            return AjaxResult.error("该用户不是商家账号");
+            return error("该用户不是商家账号");
         }
         return AjaxResult.success(shopService.getOne(Wrappers.<TShop>lambdaQuery().eq(TShop::getUserId, tokenService.getLoginUser().getUserId())
                 .last("LIMIT 1")));
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index bb5f7fc..de9cc1e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -1,9 +1,6 @@
 package com.ruoyi.web.controller.system;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 
 import com.ruoyi.common.core.domain.R;
@@ -12,6 +9,7 @@
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.service.ISysRoleService;
+import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.web.controller.tool.MsgUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -53,10 +51,53 @@
     @Autowired
     private ISysRoleService roleService;
     @Autowired
+    private ISysUserService userService;
+    @Autowired
     private MsgUtils msgUtils;
 
     /**
      * 账号密码登录
+     *
+     * @param loginBody 登录信息
+     * @return 结果
+     */
+    @ApiOperation(value = "平台账号密码登录",notes = "平台账号密码登录")
+    @PostMapping("/platformLogin")
+    public AjaxResult<Map<String,Object>> platformLogin(@RequestBody LoginBody loginBody)
+    {
+
+        SysUser sysUser = userService.selectUserByUserName(loginBody.getUsername());
+        if(Objects.isNull(sysUser)){
+            return AjaxResult.error("用户不存在!");
+        }
+        if(sysUser.getRoleType() != 1){
+            return AjaxResult.error("商家无法登录平台系统!请访问商家平台");
+        }
+
+
+        Map<String,Object> map = new HashMap<>();
+        // 生成令牌
+        LoginUser loginUser = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
+                loginBody.getUuid());
+        map.put(Constants.TOKEN, tokenService.createToken(loginUser));
+        List<SysRole> roles = loginUser.getUser().getRoles();
+        if(CollectionUtils.isEmpty(roles)){
+            return AjaxResult.error("请关联角色!");
+        }
+        if(roles.get(0).getStatus() == 1){
+            return AjaxResult.error("该账号角色已被禁用!");
+        }
+
+        List<SysMenu> menus = roleService.roleInfoFromUserId(loginUser.getUserId());
+
+        map.put("menus",menus);
+        map.put("roleName",roles.get(0).getRoleName());
+        map.put("userInfo",loginUser);
+        return AjaxResult.success(map);
+    }
+
+    /**
+     * 账号密码登录
      * 
      * @param loginBody 登录信息
      * @return 结果
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
index 087fea1..9598468 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
@@ -232,17 +232,17 @@
      * 删除角色
      */
     // @PreAuthorize("@ss.hasPermi('system:role:remove')")
-    @ApiOperation(value = "批量删除角色")
-    @Log(title = "角色信息-角色删除角色", businessType = BusinessType.DELETE)
-    @DeleteMapping("/deleteById/{id}")
-    public AjaxResult remove(@PathVariable(value = "id") Long id)
-    {
-        SysRole sysRole = roleService.selectRoleById(id);
-        if("meal".equals(sysRole.getRoleKey()) || "sale".equals(sysRole.getRoleKey()) || "admin".equals(sysRole.getRoleKey())){
-            return error("当前角色无法删除");
-        }
-        return AjaxResult.success(roleService.deleteRoleById(id));
-    }
+//    @ApiOperation(value = "批量删除角色")
+//    @Log(title = "角色信息-角色删除角色", businessType = BusinessType.DELETE)
+//    @DeleteMapping("/deleteById/{id}")
+//    public AjaxResult remove(@PathVariable(value = "id") Long id)
+//    {
+//        SysRole sysRole = roleService.selectRoleById(id);
+//        if("meal".equals(sysRole.getRoleKey()) || "sale".equals(sysRole.getRoleKey()) || "admin".equals(sysRole.getRoleKey())){
+//            return error("当前角色无法删除");
+//        }
+//        return AjaxResult.success(roleService.deleteRoleById(id));
+//    }
 
     /**
      * 删除角色
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/SysRoleDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/SysRoleDTO.java
index 4f83237..bc8c03c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/SysRoleDTO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/SysRoleDTO.java
@@ -20,6 +20,9 @@
     @ApiModelProperty(value = "类型")
     private Integer postType;
 
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
     @ApiModelProperty(value = "权限id集合")
     private List<Long> menuIds;
 
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
index a87ab1f..8f6b175 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderSaleAndGoodsExportExcel.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/TOrderSaleAndGoodsExportExcel.java
@@ -26,6 +26,6 @@
     @Excel(width = 30,name = "商品总价",needMerge = true)
     private BigDecimal goodsAmount;
 
-    @Excel(width = 30,name = "支付方式",replace = {"现金_1","支付宝_2","微信_3","银行卡_4","其他_5"},needMerge = true)
+    @Excel(width = 30,name = "支付方式",replace = {"现金_1","支付宝_2","微信_3","银行卡_4","其他_5"," _null"},needMerge = true)
     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
index 4b4a803..aa44853 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorSaleQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorSaleQuery.java
@@ -22,5 +22,4 @@
     @ApiModelProperty(value = "数据生成id")
     @NotNull(message = "数据生成id不能为空")
     private Long generatorId;
-
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
index 389db9f..9fe2a93 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
@@ -395,6 +395,9 @@
             {
                 throw new ServiceException(String.format("%1$s已分配,不能删除", role.getRoleName()));
             }
+            if("meal".equals(role.getRoleKey()) || "sale".equals(role.getRoleKey()) || "admin".equals(role.getRoleKey())){
+                throw new ServiceException("当前角色无法删除");
+            }
         }
         // 删除角色与菜单关联
         roleMenuMapper.deleteRoleMenu(roleIds);
@@ -587,6 +590,7 @@
         sysRole.setRoleId(dto.getRoleId());
         sysRole.setRoleName(dto.getRoleName());
         sysRole.setPostType(dto.getPostType());
+        sysRole.setRemark(dto.getRemark());
         roleMapper.updateRole(sysRole);
         // 删除角色与菜单关联
         roleMenuMapper.deleteRoleMenuByRoleId(dto.getRoleId());
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 df04761..1255135 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
@@ -9,6 +9,7 @@
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.CodeGenerateUtils;
+import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.system.domain.*;
 import com.ruoyi.system.dto.OrderMealGeneratorCountDTO;
 import com.ruoyi.system.dto.OrderMealGeneratorDTO;
@@ -26,6 +27,8 @@
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -136,6 +139,7 @@
                             if (good.getGoodsNum().equals(typeGood.getGoodsNum())) {
                                 count+=1;
                                 good.setGoodsCount(good.getGoodsCount() + 1);
+                                good.setGoodsSalePrice(good.getGoodsSalePrice().add(typeGood.getSalePrice()));
                                 break; // 找到后直接跳出循环
                             }
                         }
@@ -329,8 +333,8 @@
                     tOrderStockGoods.setGoodsPicture(v.get(0).getGoodsPicture());
                     tOrderStockGoods.setGoodsId(v.get(0).getGoodsId());
                     int sum = v.stream().mapToInt(TOrderSaleGoods::getGoodsCount).sum();
-                    BigDecimal rate = start.getLossRate().divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
-                    BigDecimal bigDecimal = new BigDecimal(sum).divide(rate).setScale(0, BigDecimal.ROUND_HALF_UP);
+                    BigDecimal rate = new BigDecimal(100).subtract(start.getLossRate()).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    BigDecimal bigDecimal = new BigDecimal(sum).divide(rate,2,BigDecimal.ROUND_HALF_UP).setScale(0, BigDecimal.ROUND_HALF_UP);
                     tOrderStockGoods.setStockCount(Integer.parseInt(bigDecimal.toString().split("\\.")[0]));
                     orderStockGoods.add(tOrderStockGoods);
                 });
@@ -370,8 +374,8 @@
                     tOrderStockGoods.setGoodsPicture(v.get(0).getGoodsPicture());
                     tOrderStockGoods.setGoodsId(v.get(0).getGoodsId());
                     int sum = v.stream().mapToInt(TOrderSaleGoods::getGoodsCount).sum();
-                    BigDecimal rate = start.getLossRate().divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
-                    BigDecimal bigDecimal = new BigDecimal(sum).divide(rate).setScale(0, BigDecimal.ROUND_HALF_UP);
+                    BigDecimal rate = new BigDecimal(100).subtract(start.getLossRate()).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    BigDecimal bigDecimal = new BigDecimal(sum).divide(rate,2,BigDecimal.ROUND_HALF_UP).setScale(0, BigDecimal.ROUND_HALF_UP);
                     tOrderStockGoods.setStockCount(Integer.parseInt(bigDecimal.toString().split("\\.")[0]));
                     orderStockGoods.add(tOrderStockGoods);
                 });
@@ -404,8 +408,8 @@
                     tOrderStockGoods.setGoodsPicture(v.get(0).getGoodsPicture());
                     tOrderStockGoods.setGoodsId(v.get(0).getGoodsId());
                     int sum = v.stream().mapToInt(TOrderSaleGoods::getGoodsCount).sum();
-                    BigDecimal rate = start.getLossRate().divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
-                    BigDecimal bigDecimal = new BigDecimal(sum).divide(rate).setScale(0, BigDecimal.ROUND_HALF_UP);
+                    BigDecimal rate = new BigDecimal(100).subtract(start.getLossRate()).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    BigDecimal bigDecimal = new BigDecimal(sum).divide(rate,2,BigDecimal.ROUND_HALF_UP).setScale(0, BigDecimal.ROUND_HALF_UP);
                     tOrderStockGoods.setStockCount(Integer.parseInt(bigDecimal.toString().split("\\.")[0]));
                     orderStockGoods1.add(tOrderStockGoods);
                 });
@@ -438,8 +442,8 @@
                     tOrderStockGoods.setGoodsPicture(v.get(0).getGoodsPicture());
                     tOrderStockGoods.setGoodsId(v.get(0).getGoodsId());
                     int sum = v.stream().mapToInt(TOrderSaleGoods::getGoodsCount).sum();
-                    BigDecimal rate = start.getLossRate().divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
-                    BigDecimal bigDecimal = new BigDecimal(sum).divide(rate).setScale(0, BigDecimal.ROUND_HALF_UP);
+                    BigDecimal rate = new BigDecimal(100).subtract(start.getLossRate()).divide(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);
+                    BigDecimal bigDecimal = new BigDecimal(sum).divide(rate,2,BigDecimal.ROUND_HALF_UP).setScale(0, BigDecimal.ROUND_HALF_UP);
                     tOrderStockGoods.setStockCount(Integer.parseInt(bigDecimal.toString().split("\\.")[0]));
                     orderStockGoods.add(tOrderStockGoods);
                 });
@@ -493,12 +497,14 @@
                     .in(TOrderMeal::getGeneratorId, ids));
             List<Long> mealIds = orderMeals.stream().map(TOrderMeal::getId).collect(Collectors.toList());
             if(!CollectionUtils.isEmpty(mealIds)){
-                List<TOrderMealGoods> mealGoods = orderMealGoodsService.list(Wrappers.lambdaQuery(TOrderMealGoods.class)
-                        .in(TOrderMealGoods::getOrderId, mealIds));
+//                List<TOrderMealGoods> mealGoods = orderMealGoodsService.list(Wrappers.lambdaQuery(TOrderMealGoods.class)
+//                        .in(TOrderMealGoods::getOrderId, mealIds));
                 for (TDataGeneratorVO tDataGeneratorVO : list) {
-                    List<Long> collect = orderMeals.stream().filter(e -> e.getGeneratorId().equals(tDataGeneratorVO.getId())).map(TOrderMeal::getId).collect(Collectors.toList());
-                    BigDecimal money = mealGoods.stream().filter(e -> collect.contains(e.getOrderId()))
-                            .reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getGoodsSalePrice().multiply(new BigDecimal(y.getGoodsCount()))), BigDecimal::add);
+//                    List<Long> collect = orderMeals.stream().filter(e -> e.getGeneratorId().equals(tDataGeneratorVO.getId())).map(TOrderMeal::getId).collect(Collectors.toList());
+//                    BigDecimal money = mealGoods.stream().filter(e -> collect.contains(e.getOrderId()))
+//                            .reduce(BigDecimal.ZERO, (x, y) -> x.add(y.getGoodsSalePrice().multiply(new BigDecimal(y.getGoodsCount()))), BigDecimal::add);
+                    BigDecimal money = orderMeals.stream().filter(e -> e.getGeneratorId().equals(tDataGeneratorVO.getId()))
+                            .map(TOrderMeal::getPayMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
                     tDataGeneratorVO.setTotalRevenue(money);
                 }
             }
@@ -530,20 +536,36 @@
             // 删除时间段的数据
             orderMealService.remove(Wrappers.lambdaQuery(TOrderMeal.class)
                     .ge(TOrderMeal::getMealTime, dataGenerator.getStartTime())
-                    .le(TOrderMeal::getMealTime, dataGenerator.getEndTime()));
+                    .le(TOrderMeal::getMealTime, dataGenerator.getEndTime())
+                    .eq(TOrderMeal::getIsCover,1));
             // 修改覆盖类型为已覆盖
             orderMealService.update(Wrappers.lambdaUpdate(TOrderMeal.class).set(TOrderMeal::getIsCover, 1).eq(TOrderMeal::getGeneratorId, id));
         }else {
+            List<TOrderStock> list = orderStockService.list(Wrappers.lambdaQuery(TOrderStock.class)
+                    .eq(TOrderStock::getGeneratorId, id));
+            List<Long> stockIds = list.stream().map(TOrderStock::getId).collect(Collectors.toList());
+            if(!CollectionUtils.isEmpty(stockIds)){
+                List<TOrderStockGoods> list1 = orderStockGoodsService.list(Wrappers.lambdaQuery(TOrderStockGoods.class)
+                        .in(TOrderStockGoods::getOrderId, stockIds));
+                // 判断集合中的进价是否为0
+                for (TOrderStockGoods tOrderStockGoods : list1) {
+                    if(tOrderStockGoods.getThisCostPrice().compareTo(BigDecimal.ZERO) == 0){
+                        throw new ServiceException("进价不能为0");
+                    }
+                }
+            }
             // 删除时间段的数据
             orderSaleService.remove(Wrappers.lambdaQuery(TOrderSale.class)
                     .ge(TOrderSale::getOrderTime, dataGenerator.getStartTime())
-                    .le(TOrderSale::getOrderTime, dataGenerator.getEndTime()));
+                    .le(TOrderSale::getOrderTime, dataGenerator.getEndTime())
+                    .eq(TOrderSale::getIsCover,1));
             // 修改覆盖类型为已覆盖
-            orderStockService.update(Wrappers.lambdaUpdate(TOrderStock.class).set(TOrderStock::getIsCover, 1).eq(TOrderStock::getGeneratorId, id));
+            orderSaleService.update(Wrappers.lambdaUpdate(TOrderSale.class).set(TOrderSale::getIsCover, 1).eq(TOrderSale::getGeneratorId, id));
             // 删除时间段的数据
             orderStockService.remove(Wrappers.lambdaQuery(TOrderStock.class)
                     .ge(TOrderStock::getStockTime, dataGenerator.getStartTime())
-                    .le(TOrderStock::getStockTime, dataGenerator.getEndTime()));
+                    .le(TOrderStock::getStockTime, dataGenerator.getEndTime())
+                    .eq(TOrderStock::getIsCover,1));
             // 修改覆盖类型为已覆盖
             orderStockService.update(Wrappers.lambdaUpdate(TOrderStock.class).set(TOrderStock::getIsCover, 1).eq(TOrderStock::getGeneratorId, id));
         }
@@ -590,6 +612,14 @@
         orderSaleQuery.setPayType(query.getPayType());
         orderSaleQuery.setOrderNum(query.getOrderNum());
         orderSaleQuery.setGeneratorId(query.getGeneratorId());
+        try {
+            if (Objects.nonNull(query.getStartTime()) && Objects.nonNull(query.getEndTime())){
+                orderSaleQuery.setStartTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(query.getStartTime()));
+                orderSaleQuery.setEndTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(query.getEndTime()));
+            }
+        } catch (ParseException e) {
+            throw new ServiceException(e.getMessage());
+        }
         PageInfo<TOrderSaleVO> pageInfo = orderSaleService.pageList(orderSaleQuery);
         data.setOrderMealList(pageInfo);
         // 统计支付金额
@@ -616,6 +646,14 @@
         orderStockQuery.setGeneratorId(query.getGeneratorId());
         orderStockQuery.setTimeType(query.getTimeType());
         orderStockQuery.setStockNum(query.getOrderNum());
+        try {
+            if(Objects.nonNull(query.getStartTime()) && Objects.nonNull(query.getEndTime())){
+                orderStockQuery.setStartTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(query.getStartTime()));
+                orderStockQuery.setEndTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(query.getEndTime()));
+            }
+        } catch (ParseException e) {
+            throw new ServiceException(e.getMessage());
+        }
         PageInfo<TOrderStockVO> pageInfo = orderStockService.pageList(orderStockQuery);
         data.setOrderStockVOList(pageInfo);
         // 统计支付金额
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationPersonServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationPersonServiceImpl.java
index dc4ab1f..a626103 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationPersonServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationPersonServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.system.domain.TFoundationConfig;
 import com.ruoyi.system.domain.TFoundationPerson;
 import com.ruoyi.system.dto.TFoundationPersonDTO;
@@ -33,10 +34,14 @@
 
     @Override
     public void add(TFoundationPersonDTO dto) {
+        List<TFoundationConfig> foundationConfigs = dto.getFoundationConfigs();
+        long count = foundationConfigs.stream().map(TFoundationConfig::getTypeId).distinct().count();
+        if(foundationConfigs.size()!=count){
+            throw new ServiceException("菜品重复设置");
+        }
         // 添加人数
         this.save(dto);
         // 添加菜品
-        List<TFoundationConfig> foundationConfigs = dto.getFoundationConfigs();
         foundationConfigs.forEach(item -> {
             item.setPersonId(dto.getId());
         });
@@ -45,13 +50,17 @@
 
     @Override
     public void edit(TFoundationPersonDTO dto) {
+        List<TFoundationConfig> foundationConfigs = dto.getFoundationConfigs();
+        long count = foundationConfigs.stream().map(TFoundationConfig::getTypeId).distinct().count();
+        if(foundationConfigs.size()!=count){
+            throw new ServiceException("菜品重复设置");
+        }
         // 添加人数
         this.updateById(dto);
         // 删除菜品
         foundationConfigService.remove(Wrappers.lambdaQuery(TFoundationConfig.class)
                 .eq(TFoundationConfig::getPersonId,dto.getId()));
         // 添加菜品
-        List<TFoundationConfig> foundationConfigs = dto.getFoundationConfigs();
         foundationConfigs.forEach(item -> {
             item.setPersonId(dto.getId());
         });
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 50fb9e5..347ed32 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
@@ -219,7 +219,9 @@
                 .add(salesVolumeVO.getMoneyPay()).add(salesVolumeVO.getAliPay()));
         // 查询成本
         List<TOrderMeal> list = this.list(Wrappers.lambdaQuery(TOrderMeal.class)
-                .eq(TOrderMeal::getShopId, query.getShopId()));
+                .eq(TOrderMeal::getShopId, query.getShopId())
+                .ge(TOrderMeal::getMealTime, query.getStartTime())
+                .le(TOrderMeal::getMealTime, query.getEndTime()));
         List<Long> ids = list.stream().map(TOrderMeal::getId).collect(Collectors.toList());
         if(!CollectionUtils.isEmpty(ids)){
             BigDecimal costTotal = orderMealGoodsService.costTotal(ids);
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 4a2dc22..2aadbc9 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
@@ -69,33 +69,35 @@
 
     @Override
     public PageInfo<TOrderSaleVO> pageList(TOrderSaleQuery query) {
-        if(Objects.nonNull(query.getTimeType())){
-            LocalDateTime startTime = null;
-            LocalDateTime endTime = null;
-            switch (query.getTimeType()){
-                case 1:
-                    // 今日
-                    startTime = DateUtils.getDayStart(LocalDateTime.now());
-                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
-                    break;
-                case 2:
-                    // 昨日
-                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1));
-                    endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1));
-                    break;
-                case 3:
-                    // 近7天
-                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7));
-                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
-                    break;
-                case 4:
-                    // 近30天
-                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30));
-                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
-                    break;
+        if(Objects.nonNull(query.getStartTime()) && Objects.nonNull(query.getEndTime())){
+            if(Objects.nonNull(query.getTimeType())){
+                LocalDateTime startTime = null;
+                LocalDateTime endTime = null;
+                switch (query.getTimeType()){
+                    case 1:
+                        // 今日
+                        startTime = DateUtils.getDayStart(LocalDateTime.now());
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                    case 2:
+                        // 昨日
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1));
+                        break;
+                    case 3:
+                        // 近7天
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                    case 4:
+                        // 近30天
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                }
+                query.setStartTime(DateUtils.localDateTimeToDate(startTime));
+                query.setEndTime(DateUtils.localDateTimeToDate(endTime));
             }
-            query.setStartTime(DateUtils.localDateTimeToDate(startTime));
-            query.setEndTime(DateUtils.localDateTimeToDate(endTime));
         }
         PageInfo<TOrderSaleVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize());
         List<TOrderSaleVO> list = this.baseMapper.pageList(query,pageInfo);
@@ -106,7 +108,11 @@
             list.forEach(e->{
                 List<TOrderSaleGoods> collect = list1.stream().filter(m -> m.getOrderId().equals(e.getId())).collect(Collectors.toList());
                 if(!CollectionUtils.isEmpty(collect)){
-                    e.setGoodsAmount(collect.stream().map(TOrderSaleGoods::getGoodsSalePrice).reduce(BigDecimal::add).get());
+                    BigDecimal goodsAmount = BigDecimal.ZERO;
+                    for (TOrderSaleGoods tOrderSaleGoods : collect) {
+                        goodsAmount = goodsAmount.add(tOrderSaleGoods.getThisSalePrice().multiply(new BigDecimal(tOrderSaleGoods.getGoodsCount())));
+                    }
+                    e.setGoodsAmount(goodsAmount);
                     e.setOrderSaleGoods(collect);
                 }
             });
@@ -201,6 +207,36 @@
 
     @Override
     public Map<String, Double> getDataGeneratorSaleDetail(TDataGeneratorSaleQuery query) {
+        if(Objects.nonNull(query.getStartTime()) && Objects.nonNull(query.getEndTime())){
+            if(Objects.nonNull(query.getTimeType())){
+                LocalDateTime startTime = null;
+                LocalDateTime endTime = null;
+                switch (query.getTimeType()){
+                    case 1:
+                        // 今日
+                        startTime = DateUtils.getDayStart(LocalDateTime.now());
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                    case 2:
+                        // 昨日
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1));
+                        break;
+                    case 3:
+                        // 近7天
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                    case 4:
+                        // 近30天
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                }
+                query.setStartTime(DateUtils.localDateTimeToDate(startTime));
+                query.setEndTime(DateUtils.localDateTimeToDate(endTime));
+            }
+        }
         return this.baseMapper.getDataGeneratorSaleDetail(query);
     }
 
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 c365360..48efe17 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
@@ -88,35 +88,36 @@
 
     @Override
     public PageInfo<TOrderStockVO> pageList(TOrderStockQuery query) {
-
-        // 判断时间
-        if(Objects.nonNull(query.getTimeType())){
-            LocalDateTime startTime = null;
-            LocalDateTime endTime = null;
-            switch (query.getTimeType()){
-                case 1:
-                    // 今日
-                    startTime = DateUtils.getDayStart(LocalDateTime.now());
-                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
-                    break;
-                case 2:
-                    // 昨日
-                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1));
-                    endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1));
-                    break;
-                case 3:
-                    // 近7天
-                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7));
-                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
-                    break;
-                case 4:
-                    // 近30天
-                    startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30));
-                    endTime = DateUtils.getDayEnd(LocalDateTime.now());
-                    break;
+        if(Objects.nonNull(query.getStartTime()) && Objects.nonNull(query.getEndTime())){
+            // 判断时间
+            if(Objects.nonNull(query.getTimeType())){
+                LocalDateTime startTime = null;
+                LocalDateTime endTime = null;
+                switch (query.getTimeType()){
+                    case 1:
+                        // 今日
+                        startTime = DateUtils.getDayStart(LocalDateTime.now());
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                    case 2:
+                        // 昨日
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(1));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now().minusDays(1));
+                        break;
+                    case 3:
+                        // 近7天
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(7));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                    case 4:
+                        // 近30天
+                        startTime = DateUtils.getDayStart(LocalDateTime.now().minusDays(30));
+                        endTime = DateUtils.getDayEnd(LocalDateTime.now());
+                        break;
+                }
+                query.setStartTime(DateUtils.localDateTimeToDate(startTime));
+                query.setEndTime(DateUtils.localDateTimeToDate(endTime));
             }
-            query.setStartTime(DateUtils.localDateTimeToDate(startTime));
-            query.setEndTime(DateUtils.localDateTimeToDate(endTime));
         }
         PageInfo<TOrderStockVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize());
         List<TOrderStockVO> list = this.baseMapper.pageList(query,pageInfo);
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
index 930a2b8..c382378 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
@@ -96,7 +96,7 @@
 	<select id="selectList" resultType="com.ruoyi.common.core.domain.entity.SysRole">
 		select role_id AS roleId, role_name AS roleName, role_key AS roleKey, role_sort AS roleSort, data_scope AS dataScope,
 		       menu_check_strictly AS menuCheckStrictly, dept_check_strictly AS deptCheckStrictly,status AS status, del_flag AS delFlag,
-		       create_time AS createTime,create_by AS createBy
+		       create_time AS createTime,create_by AS createBy,remark AS remark
 		from sys_role
 		<where>
 			<if test="query.roleName != null and query.roleName != ''">
diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml
index e1a1a7e..b8e8f3d 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml
@@ -185,7 +185,8 @@
                 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})
+                AND (tom.mealTime BETWEEN CONCAT(DATE_FORMAT(#{query.startTime},'%Y-%m-%d %H:%i:%s'),' 00:00:00')
+                    AND CONCAT(DATE_FORMAT(#{query.endTime},'%Y-%m-%d %H:%i:%s'),' 23:59:59'))
             </if>
             AND tom.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
         </where>
@@ -210,7 +211,7 @@
                 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})
+                AND (mealTime BETWEEN #{query.startTime} AND #{query.endTime})
             </if>
             AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
         </where>
@@ -229,11 +230,11 @@
                 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})
+                AND (tom.mealTime BETWEEN #{query.startTime} AND #{query.endTime})
             </if>
             AND tom.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
         </where>
-        ORDER BY tom.createTime DESC
+        ORDER BY tom.mealTime DESC
     </select>
     <select id="mealGeneratorListExport" resultType="com.ruoyi.system.vo.TDataGeneratorVO">
         select tdg.id, tdg.userId, tdg.userName, tdg.shopId, tdg.startTime, tdg.endTime, tdg.minMoney, tdg.maxMoney, tdg.status, tdg.createTime,
@@ -261,7 +262,7 @@
                 and tdg.orderType = #{query.orderType}
             </if>
             <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
-                AND (tdg.createTime BETWEEN #{query.startTime} AND #{query.endTime})
+                AND (tdg.mealTime BETWEEN #{query.startTime} AND #{query.endTime})
             </if>
             AND tdg.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
             and tdg.orderType = 1
@@ -291,6 +292,7 @@
                 AND tom.shopId = #{query.shopId}
             </if>
             AND tom.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+            AND tom.isCover = 1
         </where>
         GROUP BY tomg.goodsName
     </select>
@@ -323,6 +325,7 @@
                 AND tom.shopId = #{query.shopId}
             </if>
             AND tom.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+            AND tom.isCover = 1
         </where>
         GROUP BY tomg.goodsName) a
     </select>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderSaleGoodsMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderSaleGoodsMapper.xml
index a55b961..9dcd395 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TOrderSaleGoodsMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TOrderSaleGoodsMapper.xml
@@ -35,6 +35,7 @@
     <select id="salesRanking" resultType="com.ruoyi.system.vo.SalesRankingVO">
         SELECT tgt.typeName,SUM(tosg.goodsSalePrice*tosg.goodsCount) AS salesVolume
         FROM t_order_sale_goods tosg
+        LEFT JOIN t_order_sale tos on tosg.orderId=tos.id
         LEFT JOIN t_goods_type tgt ON tosg.typeId = tgt.id
         <where>
             <if test="ids != null and ids.size()>0">
@@ -43,6 +44,7 @@
                     #{id}
                 </foreach>
             </if>
+            AND tos.isCover = 1
         </where>
         GROUP BY tgt.typeName
     </select>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml
index 7176430..2135fc9 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml
@@ -49,7 +49,7 @@
                 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})
+                AND (orderTime BETWEEN #{query.startTime} AND #{query.endTime})
             </if>
             AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
         </where>
@@ -160,13 +160,13 @@
                 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})
+                AND (orderTime 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
+        select id, orderTime, remark, createTime, updateTime, disabled, createBy, updateBy, orderNum, status,orderMoney,payMoney,shopId,payType
         from t_order_sale
         <where>
             <if test="query.generatorId != null">
@@ -179,7 +179,7 @@
                 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})
+                AND (orderTime BETWEEN #{query.startTime} AND #{query.endTime})
             </if>
             AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
         </where>
@@ -196,7 +196,7 @@
                 and ts.shopName like concat('%', #{query.shopName}, '%')
             </if>
             <if test="query.userName != null and query.userName != ''">
-                and tdg.shopName like concat('%', #{query.userName}, '%')
+                and tdg.userName like concat('%', #{query.userName}, '%')
             </if>
             <if test="query.status != null">
                 and tdg.status = #{query.status}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderStockMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderStockMapper.xml
index 1604577..88b6f29 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TOrderStockMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TOrderStockMapper.xml
@@ -39,7 +39,8 @@
                 AND isCover = #{query.isCover}
             </if>
             <if test="query.endTime != null and query.startTime != null">
-                AND (stockTime BETWEEN #{query.startTime} and #{query.endTime})
+                AND (stockTime BETWEEN CONCAT(DATE_FORMAT(#{query.startTime},'%Y-%m-%d %H:%i:%s'),' 00:00:00')
+                AND CONCAT(DATE_FORMAT(#{query.endTime},'%Y-%m-%d %H:%i:%s'),' 23:59:59'))
             </if>
             AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
         </where>
@@ -47,20 +48,22 @@
     </select>
     <select id="getDataGeneratorStockDetail" resultType="java.util.Map">
         SELECT
-        IFNULL(SUM(stockTotalPrice),0) AS stockAmountSum,
-        COUNT(id) AS totalStock
-        from t_order_stock
+        IFNULL(SUM(tos.stockTotalPrice),0) AS stockAmountSum,
+        IFNULL(SUM(tosg.stockCount),0) AS totalStock
+        from t_order_stock tos
+        left join t_order_stock_goods tosg on tos.id = tosg.orderId
         <where>
             <if test="query.orderNum != null and query.orderNum != ''">
-                AND stockNum LIKE concat('%',#{query.orderNum},'%')
+                AND tos.stockNum LIKE concat('%',#{query.orderNum},'%')
             </if>
             <if test="query.generatorId != null">
-                AND generatorId = #{query.generatorId}
+                AND tos.generatorId = #{query.generatorId}
             </if>
             <if test="query.endTime != null and query.startTime != null">
-                AND (stockTime BETWEEN #{query.startTime} and #{query.endTime})
+                AND (tos.stockTime BETWEEN CONCAT(DATE_FORMAT(#{query.startTime},'%Y-%m-%d %H:%i:%s'),' 00:00:00')
+                AND CONCAT(DATE_FORMAT(#{query.endTime},'%Y-%m-%d %H:%i:%s'),' 23:59:59'))
             </if>
-            AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+            AND tos.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
         </where>
     </select>
     <select id="stockGeneratorExport" resultType="com.ruoyi.system.vo.TOrderStockVO">

--
Gitblit v1.7.1