From c22b895afe54ea30e395e00ed225883243fb8309 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 30 八月 2024 18:15:24 +0800
Subject: [PATCH] 用户角色接口

---
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TStockDataSetMapper.java             |    8 
 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                         |   15 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/SysUserUpdateStatusDTO.java             |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderMeal.java                      |   11 
 ruoyi-system/src/main/resources/mapper/system/TDataGeneratorMapper.xml                  |   35 ++
 ruoyi-system/src/main/resources/mapper/system/TStockDataSetMapper.xml                   |   24 +
 ruoyi-system/src/main/java/com/ruoyi/system/dto/OrderSaleGeneratorDTO.java              |   32 ++
 ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java      |    1 
 ruoyi-system/src/main/java/com/ruoyi/system/query/SysUserQuery.java                     |   12 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java |  287 +++++++++++++++++
 ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml                      |    3 
 ruoyi-system/src/main/resources/mapper/system/TOrderStockMapper.xml                     |    5 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java             |    7 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java        |  103 ------
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TStockDataSetServiceImpl.java  |   27 +
 ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorVO.java                    |   19 +
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataGeneratorController.java    |   39 ++
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderStock.java                     |   28 +
 ruoyi-system/pom.xml                                                                    |   15 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/OrderMealGeneratorDTO.java              |   11 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TDataGeneratorMapper.java            |   13 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TStockDataSet.java                   |   42 ++
 ruoyi-system/src/main/java/com/ruoyi/system/dto/StockDataSetDTO.java                    |   23 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java        |   11 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java        |   26 +
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TDataGenerator.java                  |   32 +
 ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorQuery.java              |   23 +
 ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml                      |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderSale.java                      |   13 
 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java            |    9 
 ruoyi-system/src/main/java/com/ruoyi/system/service/TStockDataSetService.java           |   20 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/TDataGeneratorService.java          |   25 +
 32 files changed, 774 insertions(+), 153 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 c52f3b8..c731e6c 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,16 +1,21 @@
 package com.ruoyi.web.controller.api;
 
 
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.AjaxResult;
+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.service.TDataGeneratorService;
 import com.ruoyi.system.service.TOrderMealService;
+import com.ruoyi.system.vo.TDataGeneratorVO;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * <p>
@@ -34,9 +39,29 @@
     }
 
     @ApiOperation( value = "餐饮数据生成")
-    @PostMapping(value = "/dataGenerator")
-    public AjaxResult<String> dataGenerator(@RequestBody OrderMealGeneratorDTO dto) {
-        dataGeneratorService.dataGenerator(dto);
+    @PostMapping(value = "/mealDataGenerator")
+    public AjaxResult<String> mealDataGenerator(@RequestBody OrderMealGeneratorDTO dto) {
+        dataGeneratorService.mealDataGenerator(dto);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation( value = "销售数据生成")
+    @PostMapping(value = "/saleDataGenerator")
+    public AjaxResult<String> saleDataGenerator(@RequestBody OrderSaleGeneratorDTO dto) {
+        dataGeneratorService.saleDataGenerator(dto);
+        return AjaxResult.success();
+    }
+
+    @ApiOperation( value = "数据生成分页")
+    @PostMapping(value = "/pageList")
+    public AjaxResult<PageInfo<TDataGeneratorVO>> pageList(@Validated @RequestBody TDataGeneratorQuery query) {
+        return AjaxResult.success(dataGeneratorService.pageList(query));
+    }
+
+    @ApiOperation( value = "数据覆盖")
+    @GetMapping(value = "/dataCoverage")
+    public AjaxResult<String> dataCoverage(@RequestParam(value = "id") Long id) {
+        dataGeneratorService.dataCoverage(id);
         return AjaxResult.success();
     }
 
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 fa44b77..087fea1 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
@@ -178,6 +178,10 @@
         if (flag){
             return error("修改角色'" + dto.getRoleName() + "'失败,角色名称已存在");
         }
+        SysRole sysRole = roleService.selectRoleById(dto.getRoleId());
+        if("meal".equals(sysRole.getRoleKey()) || "sale".equals(sysRole.getRoleKey()) || "admin".equals(sysRole.getRoleKey())){
+            return error("当前角色无法修改");
+        }
         if (roleService.editRole(dto) > 0)
         {
             // 更新缓存用户权限
@@ -215,6 +219,10 @@
     @PutMapping("/changeStatus")
     public AjaxResult changeStatus(@RequestBody SysRole role)
     {
+        SysRole sysRole = roleService.selectRoleById(role.getRoleId());
+        if("meal".equals(sysRole.getRoleKey()) || "sale".equals(sysRole.getRoleKey()) || "admin".equals(sysRole.getRoleKey())){
+            return error("当前角色无法修改状态");
+        }
         role.setUpdateBy(getUsername());
         roleService.updateStatus(role);
         return AjaxResult.success();
@@ -224,7 +232,23 @@
      * 删除角色
      */
     // @PreAuthorize("@ss.hasPermi('system:role:remove')")
-    @ApiOperation(value = "删除角色")
+    @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));
+    }
+
+    /**
+     * 删除角色
+     */
+    // @PreAuthorize("@ss.hasPermi('system:role:remove')")
+    @ApiOperation(value = "批量删除角色")
     @Log(title = "角色信息-角色删除角色", businessType = BusinessType.DELETE)
     @DeleteMapping("/deleteById/{ids}")
     public AjaxResult remove(@PathVariable String ids)
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 310a24a..5a1354f 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
@@ -82,105 +82,6 @@
 //    }
 
     /**
-     * 人员借用列表
-     */
-//    @ApiOperation(value = "人员借用列表")
-//    @GetMapping("/userBorrowList")
-//    public AjaxResult userBorrowList(@RequestParam(required = false) String name,
-//                                     @RequestParam(required = false) Integer type)
-//    {
-//
-//        UserAddListVO userAddListVO = new UserAddListVO();
-//
-//        Long companyId = tokenService.getLoginUser().getUser().getCompanyId();
-//
-//        List<TCompany> companyList = new ArrayList<>();
-//        List<TDept> deptList = new ArrayList<>();
-//        List<SysUser> userList = new ArrayList<>();
-//        // 查询公司
-//        if(Objects.nonNull(type) && type == 1){
-//            companyList = companyService.userAddListByCompanyName(name);
-//        }
-//        // 查询部门
-//        if(Objects.nonNull(type) && type == 2){
-//            deptList = tDeptService.userAddListByDeptName(name);
-//        }
-//        // 查询用户
-//        if(Objects.nonNull(type) && type == 3){
-//            userList = userService.selectListByNamePhone(name);
-//        }
-//
-//        if(Objects.isNull(type)){
-//            companyList = companyService.userAddListByCompanyName(name);
-//            deptList = tDeptService.userAddListByDeptName(name);
-//            userList = userService.selectListByNamePhone(name);
-//        }
-//
-//        List<Long> companyIds = companyList.stream().map(TCompany::getId).collect(Collectors.toList());
-//        List<Long> deptCompanyIds = deptList.stream().map(TDept::getCompanyId).collect(Collectors.toList());
-//        List<Long> userCompanyIds = userList.stream().map(SysUser::getCompanyId).collect(Collectors.toList());
-//        companyIds.addAll(deptCompanyIds);
-//        companyIds.addAll(userCompanyIds);
-//
-//        companyIds = companyIds.stream().distinct().collect(Collectors.toList());
-//
-//        if(CollectionUtils.isEmpty(companyIds)){
-//            return AjaxResult.success(userAddListVO);
-//        }
-//        SysUser user1 = tokenService.getLoginUser().getUser();
-//        if(!user1.isAdmin()){
-//            companyIds = companyIds.stream().filter(e->!e.equals(companyId)).collect(Collectors.toList());
-//        }
-//
-//        // 查询符合要求的公司
-//        List<UserLevelVO> parent = companyService.userAddListByCompanyIds(companyIds);
-//
-//        List<TDept> depts = tDeptService.selectList();
-//
-//        List<SysUser> sysUsers = userService.selectList();
-//
-//        for (UserLevelVO userLevelVO : parent) {
-//
-//            // 找到公司下的部门
-//            List<TDept> tDepts = depts.stream().filter(e -> userLevelVO.getKey().equals(e.getCompanyId())).collect(Collectors.toList());
-//            List<UserLevelVO> children = new ArrayList<>();
-//            // 封装部门
-//            for (TDept dept : tDepts) {
-//                userLevelVO.setChildren(children);
-//                UserLevelVO userLevelVO1 = new UserLevelVO();
-//                userLevelVO1.setKey(dept.getId());
-//                userLevelVO1.setTitle(dept.getDeptName());
-//                // 找到部门下的人员
-//                List<SysUser> users;
-//                if(StringUtils.isNotEmpty(name) && type == 3){
-//                    users = sysUsers.stream().filter(e -> userLevelVO1.getKey().equals(e.getDeptId())
-//                            && ((StringUtils.isNotEmpty(e.getNickName()) && e.getNickName().contains(name)))
-//                            || (StringUtils.isNotEmpty(e.getPhonenumber()) && e.getPhonenumber().contains(name))).collect(Collectors.toList());
-//                }else {
-//                    users = sysUsers.stream().filter(e -> userLevelVO1.getKey().equals(e.getDeptId())).collect(Collectors.toList());
-//                }
-//                List<UserLevelVO> children1 = new ArrayList<>();
-//                // 封装人员
-//                for (SysUser user : users) {
-//                    UserLevelVO userLevelVO2 = new UserLevelVO();
-//                    userLevelVO2.setKey(user.getUserId());
-//                    userLevelVO2.setTitle(user.getNickName());
-//                    userLevelVO2.setAvatar(user.getAvatar());
-//                    userLevelVO2.setFlag(true);
-//                    children1.add(userLevelVO2);
-//                }
-//                userLevelVO1.setChildren(children1);
-//
-//                children.add(userLevelVO1);
-//            }
-//            userLevelVO.setChildren(children);
-//        }
-//        userAddListVO.setUserLevelVOS(parent);
-//        userAddListVO.setUserList(sysUsers);
-//        return AjaxResult.success(userAddListVO);
-//    }
-
-    /**
      * 获取用户详情
      */
     @ApiOperation(value = "获取用户详情")
@@ -270,7 +171,6 @@
     @PostMapping("/add")
     public AjaxResult add(@Validated @RequestBody SysUser user)
     {
-        user.setUserName(user.getPhonenumber());
         if (!userService.checkUserNameUnique(user))
         {
             return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
@@ -279,6 +179,7 @@
         {
             return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
         }
+        user.setPassword("123456");
         user.setCreateBy(getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         userService.insertUser(user);
@@ -359,7 +260,7 @@
         SysUser user = new SysUser();
         user.setUserId(dto.getUserId());
         user.setStatus(String.valueOf(dto.getStatus()));
-        user.setRemark(dto.getRemark());
+        user.setDisableRemark(dto.getDisableRemark());
         user.setUpdateBy(getUsername());
         return AjaxResult.success(userService.updateUserStatus(user));
     }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
index b49a187..f6cf7a2 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -112,11 +112,18 @@
     /** 角色ID */
     @ApiModelProperty(value = "角色ID")
     private Long roleId;
+    @ApiModelProperty(value = "角色类型 1=平台 2=餐饮店铺 3=销售店铺")
+    private Integer roleType;
     /**
      * 是否为黑名单 1是 0否
      */
     @ApiModelProperty(value = "是否为黑名单 1是 0否")
     private Integer ifBlack;
+    /**
+     * 禁用备注
+     */
+    @ApiModelProperty(value = "禁用备注")
+    private String disableRemark;
 
     @TableField(exist = false)
     private String roleName;
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java
index 670e6b3..ce64fab 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java
@@ -60,6 +60,7 @@
      * 操作系统
      */
     private String os;
+    private String nickName;
 
     /**
      * 权限列表
@@ -89,6 +90,14 @@
         this.permissions = permissions;
     }
 
+    public String getNickName() {
+        return nickName;
+    }
+
+    public void setNickName(String nickName) {
+        this.nickName = nickName;
+    }
+
     public Long getUserId()
     {
         return userId;
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
index eadb4d3..24c6c1d 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -113,6 +113,7 @@
         }
         AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
         LoginUser loginUser = (LoginUser) authentication.getPrincipal();
+        loginUser.setNickName(user.getNickName());
         recordLoginInfo(loginUser.getUserId());
         // 生成token
         return loginUser;
diff --git a/ruoyi-system/pom.xml b/ruoyi-system/pom.xml
index 10998d3..44d22cf 100644
--- a/ruoyi-system/pom.xml
+++ b/ruoyi-system/pom.xml
@@ -55,11 +55,11 @@
 <!--            <version>4.3.2</version>-->
 <!--        </dependency>-->
 
-<!--        <dependency>-->
-<!--            <groupId>org.springframework</groupId>-->
-<!--            <artifactId>spring-test</artifactId>-->
-<!--            <version>5.1.3.RELEASE</version>-->
-<!--        </dependency>-->
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-test</artifactId>
+            <version>5.1.3.RELEASE</version>
+        </dependency>
 
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -70,6 +70,11 @@
             <groupId>org.apache.tomcat.embed</groupId>
             <artifactId>tomcat-embed-core</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-framework</artifactId>
+            <version>3.8.6</version>
+        </dependency>
 
     </dependencies>
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TDataGenerator.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TDataGenerator.java
index 47d6c04..2d1e20a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TDataGenerator.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TDataGenerator.java
@@ -1,6 +1,7 @@
 package com.ruoyi.system.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.domain.BaseModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -8,6 +9,8 @@
 import lombok.EqualsAndHashCode;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -43,22 +46,43 @@
 
     @ApiModelProperty(value = "开始时间")
     @TableField("startTime")
-    private LocalDateTime startTime;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate startTime;
 
     @ApiModelProperty(value = "结束时间")
     @TableField("endTime")
-    private LocalDateTime endTime;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate endTime;
 
     @ApiModelProperty(value = "最小金额")
     @TableField("minMoney")
-    private Double minMoney;
+    private BigDecimal minMoney;
 
     @ApiModelProperty(value = "最大金额")
     @TableField("maxMoney")
-    private Double maxMoney;
+    private BigDecimal maxMoney;
 
     @ApiModelProperty(value = "状态 1=生成中 2=待覆盖 3=已覆盖")
     @TableField("status")
     private Integer status;
 
+    @ApiModelProperty(value = "订单类型 1=餐饮 2=销售")
+    @TableField("orderType")
+    private Integer orderType;
+    @ApiModelProperty(value = "微信支付占比")
+    @TableField("weiXinPay")
+    private BigDecimal weiXinPay;
+    @ApiModelProperty(value = "支付宝支付占比")
+    @TableField("aliPay")
+    private BigDecimal aliPay;
+    @ApiModelProperty(value = "支付宝支付占比")
+    @TableField("cardPay")
+    private BigDecimal cardPay;
+    @ApiModelProperty(value = "现金支付占比")
+    @TableField("moneyPay")
+    private BigDecimal moneyPay;
+    @ApiModelProperty(value = "其他支付")
+    @TableField("otherPay")
+    private BigDecimal otherPay;
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderMeal.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderMeal.java
index d81c0d2..d5faf30 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderMeal.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderMeal.java
@@ -62,10 +62,19 @@
     @ApiModelProperty(value = "支付状态 1=待支付 2=已支付")
     @TableField("status")
     private Integer status;
+    @ApiModelProperty(value = "是否覆盖 1=是 0=否")
+    @TableField("isCover")
+    private Integer isCover;
+    @ApiModelProperty(value = "数据生成id")
+    @TableField("generatorId")
+    private Long generatorId;
+    @ApiModelProperty(value = "店铺id")
+    @TableField("shopId")
+    private Long shopId;
 
     @ApiModelProperty(value = "商品集合")
     @TableField(exist = false)
-    private List<TOrderMealGoods> mealOrderGoods;;
+    private List<TOrderMealGoods> mealOrderGoods;
 
 
 }
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 9503c82..82b9c02 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
@@ -1,6 +1,7 @@
 package com.ruoyi.system.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.domain.BaseModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -9,7 +10,9 @@
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * <p>
@@ -31,8 +34,9 @@
     private Long id;
 
     @ApiModelProperty(value = "下单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField("orderTime")
-    private LocalDateTime orderTime;
+    private LocalDate orderTime;
 
     @ApiModelProperty(value = "备注说明")
     @TableField("remark")
@@ -53,6 +57,13 @@
     @ApiModelProperty(value = "支付状态 1=待支付 2=已支付")
     @TableField("status")
     private Integer status;
+    @ApiModelProperty(value = "店铺id")
+    @TableField("shopId")
+    private Long shopId;
+
+    @ApiModelProperty(value = "销售订单商品")
+    @TableField(exist = false)
+    private List<TOrderSaleGoods> orderSaleGoods;
 
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderStock.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderStock.java
index 063b394..e7e3a14 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderStock.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderStock.java
@@ -1,6 +1,7 @@
 package com.ruoyi.system.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.domain.BaseModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -9,7 +10,9 @@
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * <p>
@@ -35,11 +38,28 @@
     private String stockNum;
 
     @ApiModelProperty(value = "进货日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField("stockTime")
-    private LocalDateTime stockTime;
+    private LocalDate stockTime;
 
-    @ApiModelProperty(value = "进货总价")
-    @TableField("stockTotalPrice")
-    private BigDecimal stockTotalPrice;
+//    @ApiModelProperty(value = "进货总价")
+//    @TableField("stockTotalPrice")
+//    private BigDecimal stockTotalPrice;
+    @ApiModelProperty(value = "是否覆盖 1=是 0=否")
+    @TableField("isCover")
+    private Integer isCover;
+    @ApiModelProperty(value = "数据生成id")
+    @TableField("generatorId")
+    private Long generatorId;
+    @ApiModelProperty(value = "店铺id")
+    @TableField("shopId")
+    private Long shopId;
 
+//    @ApiModelProperty(value = "支付方式 1=现金 2=支付宝 3=微信 4=银行卡 5=其他")
+//    @TableField("payType")
+//    private Integer payType;
+
+    @ApiModelProperty(value = "进货数据商品集合")
+    @TableField(exist = false)
+    private List<TOrderStockGoods> orderStockGoods;
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/TStockDataSet.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TStockDataSet.java
new file mode 100644
index 0000000..663107e
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TStockDataSet.java
@@ -0,0 +1,42 @@
+package com.ruoyi.system.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BaseModel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("t_stock_data_set")
+@ApiModel(value="TStockDataSet对象", description="进货数据设置")
+public class TStockDataSet extends BaseModel {
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "进货日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField("stockDate")
+    private LocalDate stockDate;
+
+    @ApiModelProperty(value = "损耗率")
+    @TableField("lossRate")
+    private BigDecimal lossRate;
+
+    @ApiModelProperty(value = "数据生成id")
+    @TableField("generatorId")
+    private Long generatorId;
+    @ApiModelProperty(value = "店铺id")
+    @TableField("shopId")
+    private Long shopId;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/OrderMealGeneratorDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/OrderMealGeneratorDTO.java
index 9b38a5a..4cc764c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/OrderMealGeneratorDTO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/OrderMealGeneratorDTO.java
@@ -6,6 +6,7 @@
 
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.List;
 
 @Data
@@ -15,11 +16,17 @@
     @ApiModelProperty(value = "店铺id")
     private Long shopId;
 
+    @ApiModelProperty(value = "开始时间")
+    private LocalDate startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    private LocalDate endTime;
+
     @ApiModelProperty(value = "营业额小")
-    private BigDecimal minTurnover;
+    private BigDecimal minMoney;
 
     @ApiModelProperty(value = "营业额大")
-    private BigDecimal maxTurnover;
+    private BigDecimal maxMoney;
 
     @ApiModelProperty(value = "微信占比")
     private BigDecimal weiXinProportion;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/OrderSaleGeneratorDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/OrderSaleGeneratorDTO.java
new file mode 100644
index 0000000..8538251
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/OrderSaleGeneratorDTO.java
@@ -0,0 +1,32 @@
+package com.ruoyi.system.dto;
+
+import com.ruoyi.system.domain.TOrderSale;
+import com.ruoyi.system.domain.TStockDataSet;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+import java.util.List;
+
+@Data
+@ApiModel(value = "销售数据生成DTO")
+public class OrderSaleGeneratorDTO implements Serializable {
+
+    @ApiModelProperty(value = "店铺id")
+    private Long shopId;
+
+    @ApiModelProperty(value = "开始时间")
+    private LocalDate startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    private LocalDate endTime;
+
+    @ApiModelProperty(value = "销售订单")
+    private List<TOrderSale> orderSales;
+
+    @ApiModelProperty(value = "进货数据设置")
+    private List<TStockDataSet> stockDataSets;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/StockDataSetDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/StockDataSetDTO.java
new file mode 100644
index 0000000..5244e3f
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/StockDataSetDTO.java
@@ -0,0 +1,23 @@
+package com.ruoyi.system.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+@Data
+@ApiModel(value = "进货数据设置DTO")
+public class StockDataSetDTO implements Serializable {
+
+    @ApiModelProperty(value = "进货日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private LocalDate stockDate;
+
+    @ApiModelProperty(value = "损耗率")
+    private BigDecimal lossRate;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/SysUserUpdateStatusDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/SysUserUpdateStatusDTO.java
index 57f6eec..b7dd3cf 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/SysUserUpdateStatusDTO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/SysUserUpdateStatusDTO.java
@@ -16,7 +16,7 @@
     @ApiModelProperty(value = "状态 帐号状态(0正常 1停用)")
     private Integer status;
 
-    @ApiModelProperty(value = "备注")
-    private String remark;
+    @ApiModelProperty(value = "禁用备注")
+    private String disableRemark;
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TDataGeneratorMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TDataGeneratorMapper.java
index 7ada9fb..98fb24b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TDataGeneratorMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TDataGeneratorMapper.java
@@ -2,7 +2,13 @@
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.domain.TDataGenerator;
+import com.ruoyi.system.query.TDataGeneratorQuery;
+import com.ruoyi.system.vo.TDataGeneratorVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -14,4 +20,11 @@
  */
 public interface TDataGeneratorMapper extends BaseMapper<TDataGenerator> {
 
+    /**
+     * 数据生成分页
+     * @param query
+     * @param pageInfo
+     * @return
+     */
+    List<TDataGeneratorVO> pageList(@Param("query") TDataGeneratorQuery query, @Param("pageInfo")PageInfo<TDataGeneratorVO> pageInfo);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TStockDataSetMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TStockDataSetMapper.java
new file mode 100644
index 0000000..47c00e7
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TStockDataSetMapper.java
@@ -0,0 +1,8 @@
+package com.ruoyi.system.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.domain.TStockDataSet;
+
+public interface TStockDataSetMapper extends BaseMapper<TStockDataSet> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/SysUserQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/SysUserQuery.java
index 8609862..3229257 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/SysUserQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/SysUserQuery.java
@@ -5,18 +5,20 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 @ApiModel(value = "账户列表query")
 public class SysUserQuery extends BasePage {
 
-    @ApiModelProperty(value = "姓名")
-    private String nickName;
+    @ApiModelProperty(value = "姓名或者手机号")
+    private String nickNameOrPhone;
 
     @ApiModelProperty(value = "角色id")
-    private Integer roleId;
+    private List<Integer> roleIds;
 
-    @ApiModelProperty(value = "手机号")
-    private String phonenumber;
+//    @ApiModelProperty(value = "手机号")
+//    private String phonenumber;
 
     @ApiModelProperty(value = "状态  0=正常 1=停用")
     private String status;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorQuery.java
new file mode 100644
index 0000000..adcfdb9
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TDataGeneratorQuery.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 = "数据生成分页")
+public class TDataGeneratorQuery extends TimeRangeQueryBody {
+    @ApiModelProperty(value = "操作人姓名")
+    private String userName;
+    @ApiModelProperty(value = "店铺名称")
+    private String shopName;
+    @ApiModelProperty(value = "状态 1=生成中 2=待覆盖 3=已覆盖")
+    private Integer status;
+    @ApiModelProperty(value = "订单类型 1=餐饮 2=销售")
+    @NotNull(message = "订单类型不能为空")
+    private Integer orderType;
+
+}
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 39d4e54..3a808b4 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
@@ -1,8 +1,12 @@
 package com.ruoyi.system.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
 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.vo.TDataGeneratorVO;
 
 /**
  * <p>
@@ -17,5 +21,24 @@
      * 餐饮数据生成
      * @param dto
      */
-    void dataGenerator(OrderMealGeneratorDTO dto);
+    void mealDataGenerator(OrderMealGeneratorDTO dto);
+
+    /**
+     * 销售数据生成
+     * @param dto
+     */
+    void saleDataGenerator(OrderSaleGeneratorDTO dto);
+
+    /**
+     * 数据生成分页
+     * @param query
+     */
+    PageInfo<TDataGeneratorVO> pageList(TDataGeneratorQuery query);
+
+    /**
+     * 数据覆盖
+     * @param id
+     * @return
+     */
+    void dataCoverage(Long id);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TStockDataSetService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TStockDataSetService.java
new file mode 100644
index 0000000..918f61c
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TStockDataSetService.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.domain.TShop;
+import com.ruoyi.system.domain.TStockDataSet;
+import com.ruoyi.system.query.TShopQuery;
+import com.ruoyi.system.vo.TShopVO;
+
+/**
+ * <p>
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2024-08-14
+ */
+public interface TStockDataSetService extends IService<TStockDataSet> {
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 4db6ccd..28a5868 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -646,9 +646,15 @@
         SysUser sysUser = new SysUser();
         sysUser.setUserName(dto.getAccount());
         sysUser.setNickName(dto.getShopHead());
+        if(dto.getShopType() ==1){
+            sysUser.setRoleType(2);
+        }else {
+            sysUser.setRoleType(3);
+        }
         sysUser.setPassword(SecurityUtils.encryptPassword(dto.getPassword()));
         this.insertUser(sysUser);
         // TODO 自动绑定角色
+
     }
 
     @Override
@@ -659,6 +665,11 @@
         }
         sysUser.setUserName(dto.getAccount());
         sysUser.setNickName(dto.getShopHead());
+        if(dto.getShopType() ==1){
+            sysUser.setRoleType(2);
+        }else {
+            sysUser.setRoleType(3);
+        }
         sysUser.setPassword(SecurityUtils.encryptPassword(dto.getPassword()));
         this.updateUser(sysUser);
     }
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 527d183..d3b6229 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
@@ -1,22 +1,30 @@
 package com.ruoyi.system.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.constant.OrderNumConstants;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.CodeGenerateUtils;
+import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.domain.*;
-import com.ruoyi.system.dto.OrderMealGeneratorCountDTO;
-import com.ruoyi.system.dto.OrderMealGeneratorDTO;
-import com.ruoyi.system.dto.TOrderMealDTO;
+import com.ruoyi.system.dto.*;
 import com.ruoyi.system.mapper.TDataGeneratorMapper;
+import com.ruoyi.system.query.TDataGeneratorQuery;
 import com.ruoyi.system.service.*;
+import com.ruoyi.system.vo.SysUserVO;
+import com.ruoyi.system.vo.TDataGeneratorVO;
 import com.ruoyi.system.vo.TFoundationConfigVO;
 import org.apache.poi.ss.formula.functions.T;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -41,9 +49,38 @@
     private TOrderMealService orderMealService;
     @Autowired
     private TOrderMealGoodsService orderMealGoodsService;
+    @Autowired
+    private TOrderSaleService orderSaleService;
+    @Autowired
+    private TOrderSaleGoodsService orderSaleGoodsService;
+    @Autowired
+    private TOrderStockService orderStockService;
+    @Autowired
+    private TOrderStockGoodsService orderStockGoodsService;
+    @Autowired
+    private TokenService tokenService;
+    @Autowired
+    private TStockDataSetService stockDataSetService;
 
     @Override
-    public void dataGenerator(OrderMealGeneratorDTO dto) {
+    public void mealDataGenerator(OrderMealGeneratorDTO dto) {
+        // 存储数据生成数据
+        TDataGenerator dataGenerator = new TDataGenerator();
+        dataGenerator.setUserId(tokenService.getLoginUser().getUserId());
+        dataGenerator.setUserName(tokenService.getLoginUser().getNickName());
+        dataGenerator.setShopId(dataGenerator.getShopId());
+        dataGenerator.setStartTime(dto.getStartTime());
+        dataGenerator.setEndTime(dto.getEndTime());
+        dataGenerator.setMinMoney(dto.getMinMoney());
+        dataGenerator.setMaxMoney(dto.getMaxMoney());
+        dataGenerator.setStatus(2);
+        dataGenerator.setOrderType(1);
+        dataGenerator.setWeiXinPay(dto.getWeiXinProportion());
+        dataGenerator.setAliPay(dto.getAliProportion());
+        dataGenerator.setCardPay(dto.getCardProportion());
+        dataGenerator.setMoneyPay(dto.getMoneyProportion());
+        dataGenerator.setOtherPay(dto.getOtherProportion());
+        this.save(dataGenerator);
         long start = System.currentTimeMillis();
         // 查询所有的人数用餐标准
         List<TFoundationConfigVO> foundationConfigs = foundationConfigService.getList();
@@ -99,7 +136,7 @@
             }
         }
         BigDecimal sumMoney = orderMeals.stream().map(TOrderMeal::getPayMoney).reduce(BigDecimal::add).get();
-        if(sumMoney.compareTo(dto.getMinTurnover()) >= 0 || sumMoney.compareTo(dto.getMaxTurnover()) <= 0){
+        if(sumMoney.compareTo(dto.getMinMoney()) >= 0 || sumMoney.compareTo(dto.getMaxMoney()) <= 0){
             int weiXin = getRandomPayType(orderMeals.size(), dto.getWeiXinProportion());
             int ali = getRandomPayType(orderMeals.size(), dto.getAliProportion());
             int card = getRandomPayType(orderMeals.size(), dto.getCardProportion());
@@ -148,12 +185,17 @@
             allOrderMeals.addAll(cardOrderMeals);
             allOrderMeals.addAll(moneyOrderMeals);
             allOrderMeals.addAll(otherOrderMeals);
+            allOrderMeals.forEach(e->{
+                e.setIsCover(0);
+                e.setGeneratorId(dataGenerator.getId());
+            });
             orderMealService.saveBatch(allOrderMeals);
 
-            for (TOrderMeal weiXinOrderMeal : allOrderMeals) {
-                weiXinOrderMeal.getMealOrderGoods().forEach(e->e.setOrderId(weiXinOrderMeal.getId()));
+            for (TOrderMeal orderMeal : allOrderMeals) {
+                orderMeal.getMealOrderGoods().forEach(e->e.setOrderId(orderMeal.getId()));
             }
             orderMealGoodsService.saveBatch(allOrderMeals.stream().map(TOrderMeal::getMealOrderGoods).flatMap(Collection::stream).collect(Collectors.toList()));
+            // 存储
             long end = System.currentTimeMillis() - start;
             System.err.println("相差时间========="+end);
         }else {
@@ -162,6 +204,237 @@
 
     }
 
+    @Override
+    public void saleDataGenerator(OrderSaleGeneratorDTO dto) {
+        // 查询上一次的数据生成时间
+        TDataGenerator lastDataGenerator = this.getOne(new LambdaQueryWrapper<TDataGenerator>().eq(TDataGenerator::getShopId, dto.getShopId()).orderByDesc(TDataGenerator::getCreateTime).last("limit 1"));
+        if(Objects.nonNull(lastDataGenerator) && lastDataGenerator.getEndTime().isAfter(dto.getStartTime())){
+            throw new ServiceException("数据生成时间不能小于上次生成时间");
+        }
+        // 查询上次生成最后一次的时间  后续涛哥不用这个类,可以改成TOrderStock的最后一条数据
+        TStockDataSet stockDataSet = stockDataSetService.getOne(new LambdaQueryWrapper<TStockDataSet>()
+                .eq(TStockDataSet::getShopId, dto.getShopId())
+                .orderByDesc(TStockDataSet::getStockDate)
+                .last("limit 1"));
+        // 存储数据生成数据
+        TDataGenerator dataGenerator = new TDataGenerator();
+        dataGenerator.setUserId(tokenService.getLoginUser().getUserId());
+        dataGenerator.setUserName(tokenService.getLoginUser().getNickName());
+        dataGenerator.setShopId(dataGenerator.getShopId());
+        dataGenerator.setStartTime(dto.getStartTime());
+        dataGenerator.setEndTime(dto.getEndTime());
+        dataGenerator.setStatus(2);
+        dataGenerator.setOrderType(2);
+        this.save(dataGenerator);
+
+        // 存储进货数据设置
+        List<TStockDataSet> stockDataSets = dto.getStockDataSets();
+        stockDataSets.forEach(e->e.setGeneratorId(dataGenerator.getId()));
+        stockDataSetService.saveBatch(stockDataSets);
+
+        // 添加销售订单数
+        List<TOrderSale> orderSales = dto.getOrderSales();
+        orderSaleService.saveBatch(orderSales);
+        for (TOrderSale orderSale : orderSales) {
+            orderSale.getOrderSaleGoods().forEach(e->e.setOrderId(orderSale.getId()));
+        }
+        List<TOrderSaleGoods> orderSaleGoods = orderSales.stream().map(TOrderSale::getOrderSaleGoods).flatMap(Collection::stream).collect(Collectors.toList());
+        orderSaleGoodsService.saveBatch(orderSaleGoods);
+
+        // 生成进货数据
+        List<TOrderStock> stockList = new ArrayList<>();
+        stockDataSets.stream().sorted(Comparator.comparing(TStockDataSet::getStockDate));
+        for (int i = 0; i < stockDataSets.size(); i++) {
+            TStockDataSet start = stockDataSets.get(i);
+            LocalDate startTime = start.getStockDate();
+            if(i==stockDataSets.size()-1){
+                // 最后一次
+                LocalDate endTime = LocalDate.now();
+                List<Long> saleIds = orderSales.stream().filter(e -> e.getOrderTime().compareTo(startTime) >= 0 && e.getOrderTime().compareTo(endTime) <= 0).map(TOrderSale::getId).collect(Collectors.toList());
+                List<TOrderSaleGoods> orderSaleGoodsList = orderSaleGoods.stream().filter(e -> saleIds.contains(e.getOrderId())).collect(Collectors.toList());
+                // 根据商品新生成一条数据
+                TOrderStock orderStock = new TOrderStock();
+                orderStock.setStockNum(OrderNumConstants.STOCK + CodeGenerateUtils.generateVolumeSn());
+                orderStock.setStockTime(startTime);
+                orderStock.setIsCover(0);
+                orderStock.setGeneratorId(dataGenerator.getId());
+                orderStock.setShopId(dto.getShopId());
+
+                Map<String, List<TOrderSaleGoods>> goodsList = orderSaleGoodsList.stream().collect(Collectors.groupingBy(TOrderSaleGoods::getGoodsName));
+                List<TOrderStockGoods> orderStockGoods = new ArrayList<>();
+                goodsList.forEach((k,v)->{
+                    TOrderStockGoods tOrderStockGoods = new TOrderStockGoods();
+                    tOrderStockGoods.setGoodsName(k);
+                    tOrderStockGoods.setGoodsNum(v.get(0).getGoodsNum());
+                    tOrderStockGoods.setCostPrice(v.get(0).getGoodsCostPrice());
+                    tOrderStockGoods.setSalePrice(v.get(0).getSalePrice());
+                    tOrderStockGoods.setGoodsPicture(v.get(0).getGoodsPicture());
+                    tOrderStockGoods.setStockCount(v.stream().mapToInt(TOrderSaleGoods::getGoodsCount).sum());
+                    orderStockGoods.add(tOrderStockGoods);
+                });
+                orderStock.setOrderStockGoods(orderStockGoods);
+                stockList.add(orderStock);
+
+            }else if(i==0 && Objects.nonNull(stockDataSet)){
+                // 第一次 第一次的进货时间为上一次的结束时间  开始时间为上一次的开始时间
+                LocalDate startTime1 = stockDataSet.getStockDate();
+                List<Long> saleIds = orderSales.stream().filter(e -> e.getOrderTime().compareTo(startTime) < 0).map(TOrderSale::getId).collect(Collectors.toList());
+                List<TOrderSaleGoods> orderSaleGoodsList = orderSaleGoods.stream().filter(e -> saleIds.contains(e.getOrderId())).collect(Collectors.toList());
+                // 查询上一次开始之后的订单数据
+                List<TOrderSale> orderSales1 = orderSaleService.list(new LambdaQueryWrapper<TOrderSale>().gt(TOrderSale::getOrderTime, startTime1));
+                List<Long> saleIds1 = orderSales1.stream().map(TOrderSale::getId).collect(Collectors.toList());
+                // 查询上一次的商品
+                List<TOrderSaleGoods> list = orderSaleGoodsService.list(new LambdaQueryWrapper<TOrderSaleGoods>().in(TOrderSaleGoods::getOrderId, saleIds1));
+                // 结合上次最后一次的数据
+                list.addAll(orderSaleGoodsList);
+                // 删除上一次的数据生成   新生成一条数据
+                TOrderStock orderStock = new TOrderStock();
+                orderStock.setStockNum(OrderNumConstants.STOCK + CodeGenerateUtils.generateVolumeSn());
+                orderStock.setStockTime(startTime);
+                orderStock.setIsCover(0);
+                orderStock.setGeneratorId(dataGenerator.getId());
+                orderStock.setShopId(dto.getShopId());
+
+                Map<String, List<TOrderSaleGoods>> goodsList = list.stream().collect(Collectors.groupingBy(TOrderSaleGoods::getGoodsName));
+                List<TOrderStockGoods> orderStockGoods = new ArrayList<>();
+                goodsList.forEach((k,v)->{
+                    TOrderStockGoods tOrderStockGoods = new TOrderStockGoods();
+                    tOrderStockGoods.setGoodsName(k);
+                    tOrderStockGoods.setGoodsNum(v.get(0).getGoodsNum());
+                    tOrderStockGoods.setCostPrice(v.get(0).getGoodsCostPrice());
+                    tOrderStockGoods.setSalePrice(v.get(0).getSalePrice());
+                    tOrderStockGoods.setGoodsPicture(v.get(0).getGoodsPicture());
+                    tOrderStockGoods.setStockCount(v.stream().mapToInt(TOrderSaleGoods::getGoodsCount).sum());
+                    orderStockGoods.add(tOrderStockGoods);
+                });
+                orderStock.setOrderStockGoods(orderStockGoods);
+                stockList.add(orderStock);
+
+                // 处理第一次到下一次的数据
+                TStockDataSet end = stockDataSets.get(i + 1);
+                LocalDate endTime = end.getStockDate();
+                List<Long> saleIds2 = orderSales.stream().filter(e -> e.getOrderTime().compareTo(startTime) >= 0 && e.getOrderTime().compareTo(endTime) < 0).map(TOrderSale::getId).collect(Collectors.toList());
+                List<TOrderSaleGoods> orderSaleGoodsList2 = orderSaleGoods.stream().filter(e -> saleIds2.contains(e.getOrderId())).collect(Collectors.toList());
+                // 根据商品新生成一条数据
+                TOrderStock orderStock1 = new TOrderStock();
+                orderStock1.setStockNum(OrderNumConstants.STOCK + CodeGenerateUtils.generateVolumeSn());
+                orderStock1.setStockTime(startTime);
+                orderStock1.setIsCover(0);
+                orderStock1.setGeneratorId(dataGenerator.getId());
+                orderStock1.setShopId(dto.getShopId());
+
+                Map<String, List<TOrderSaleGoods>> goodsList1 = orderSaleGoodsList2.stream().collect(Collectors.groupingBy(TOrderSaleGoods::getGoodsName));
+                List<TOrderStockGoods> orderStockGoods1 = new ArrayList<>();
+                goodsList1.forEach((k,v)->{
+                    TOrderStockGoods tOrderStockGoods = new TOrderStockGoods();
+                    tOrderStockGoods.setGoodsName(k);
+                    tOrderStockGoods.setGoodsNum(v.get(0).getGoodsNum());
+                    tOrderStockGoods.setCostPrice(v.get(0).getGoodsCostPrice());
+                    tOrderStockGoods.setSalePrice(v.get(0).getSalePrice());
+                    tOrderStockGoods.setGoodsPicture(v.get(0).getGoodsPicture());
+                    tOrderStockGoods.setStockCount(v.stream().mapToInt(TOrderSaleGoods::getGoodsCount).sum());
+                    orderStockGoods1.add(tOrderStockGoods);
+                });
+                orderStock1.setOrderStockGoods(orderStockGoods1);
+                stockList.add(orderStock1);
+
+            }else {
+                TStockDataSet end = stockDataSets.get(i + 1);
+                LocalDate endTime = end.getStockDate();
+                List<Long> saleIds = orderSales.stream().filter(e -> e.getOrderTime().compareTo(startTime) >= 0 && e.getOrderTime().compareTo(endTime) < 0).map(TOrderSale::getId).collect(Collectors.toList());
+                List<TOrderSaleGoods> orderSaleGoodsList = orderSaleGoods.stream().filter(e -> saleIds.contains(e.getOrderId())).collect(Collectors.toList());
+                // 根据商品新生成一条数据
+                TOrderStock orderStock = new TOrderStock();
+                orderStock.setStockNum(OrderNumConstants.STOCK + CodeGenerateUtils.generateVolumeSn());
+                orderStock.setStockTime(startTime);
+                orderStock.setIsCover(0);
+                orderStock.setGeneratorId(dataGenerator.getId());
+                orderStock.setShopId(dto.getShopId());
+
+                Map<String, List<TOrderSaleGoods>> goodsList = orderSaleGoodsList.stream().collect(Collectors.groupingBy(TOrderSaleGoods::getGoodsName));
+                List<TOrderStockGoods> orderStockGoods = new ArrayList<>();
+                goodsList.forEach((k,v)->{
+                    TOrderStockGoods tOrderStockGoods = new TOrderStockGoods();
+                    tOrderStockGoods.setGoodsName(k);
+                    tOrderStockGoods.setGoodsNum(v.get(0).getGoodsNum());
+                    tOrderStockGoods.setCostPrice(v.get(0).getGoodsCostPrice());
+                    tOrderStockGoods.setSalePrice(v.get(0).getSalePrice());
+                    tOrderStockGoods.setGoodsPicture(v.get(0).getGoodsPicture());
+                    tOrderStockGoods.setStockCount(v.stream().mapToInt(TOrderSaleGoods::getGoodsCount).sum());
+                    orderStockGoods.add(tOrderStockGoods);
+                });
+                orderStock.setOrderStockGoods(orderStockGoods);
+                stockList.add(orderStock);
+            }
+        }
+        // 删除上一次的数据生成
+        TOrderStock orderStock = orderStockService.getOne(Wrappers.lambdaQuery(TOrderStock.class)
+                .eq(TOrderStock::getShopId, dto.getShopId())
+                .orderByDesc(TOrderStock::getStockTime)
+                .last("LIMIT 1"));
+        if(Objects.nonNull(orderStock)){
+            orderStockService.removeById(orderStock);
+        }
+        // 添加数据
+        orderStockService.saveBatch(stockList);
+        for (TOrderStock stock : stockList) {
+            stock.getOrderStockGoods().forEach(e->e.setOrderId(stock.getId()));
+        }
+        List<TOrderStockGoods> orderStockGoods = stockList.stream().map(TOrderStock::getOrderStockGoods).flatMap(Collection::stream).collect(Collectors.toList());
+        orderStockGoodsService.saveBatch(orderStockGoods);
+    }
+
+    @Override
+    public PageInfo<TDataGeneratorVO> pageList(TDataGeneratorQuery query) {
+        PageInfo<TDataGeneratorVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<TDataGeneratorVO> list = this.baseMapper.pageList(query,pageInfo);
+        List<Long> ids = list.stream().map(TDataGeneratorVO::getId).collect(Collectors.toList());
+        if(query.getOrderType() == 1){
+            List<TOrderMeal> orderMeals = orderMealService.list(Wrappers.lambdaQuery(TOrderMeal.class)
+                    .in(TOrderMeal::getGeneratorId, ids));
+            List<Long> mealIds = orderMeals.stream().map(TOrderMeal::getId).collect(Collectors.toList());
+            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);
+                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));
+            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);
+                tDataGeneratorVO.setTotalRevenue(money);
+            }
+        }
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+
+    @Override
+    public void dataCoverage(Long id) {
+        TDataGenerator dataGenerator = this.getOne(Wrappers.lambdaQuery(TDataGenerator.class)
+                .eq(TDataGenerator::getId, id));
+        if(dataGenerator.getOrderType() == 1){
+            // 删除时间段的数据
+            orderMealService.remove(Wrappers.lambdaQuery(TOrderMeal.class)
+                    .gt(TOrderMeal::getCreateTime, dataGenerator.getStartTime())
+                    .lt(TOrderMeal::getCreateTime, dataGenerator.getEndTime()));
+            // 修改覆盖类型为已覆盖
+            orderMealService.update(Wrappers.lambdaUpdate(TOrderMeal.class).set(TOrderMeal::getIsCover, 1).eq(TOrderMeal::getGeneratorId, id));
+        }else {
+            // 修改覆盖类型为已覆盖
+            orderStockService.update(Wrappers.lambdaUpdate(TOrderStock.class).set(TOrderStock::getIsCover, 1).eq(TOrderStock::getGeneratorId, id));
+        }
+    }
+
     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/TStockDataSetServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TStockDataSetServiceImpl.java
new file mode 100644
index 0000000..58ad69b
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TStockDataSetServiceImpl.java
@@ -0,0 +1,27 @@
+package com.ruoyi.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.domain.TShop;
+import com.ruoyi.system.domain.TStockDataSet;
+import com.ruoyi.system.mapper.TShopMapper;
+import com.ruoyi.system.mapper.TStockDataSetMapper;
+import com.ruoyi.system.query.TShopQuery;
+import com.ruoyi.system.service.TShopService;
+import com.ruoyi.system.service.TStockDataSetService;
+import com.ruoyi.system.vo.TShopVO;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * </p>
+ *
+ * @author xiaochen
+ * @since 2024-08-14
+ */
+@Service
+public class TStockDataSetServiceImpl extends ServiceImpl<TStockDataSetMapper, TStockDataSet> implements TStockDataSetService {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorVO.java
new file mode 100644
index 0000000..138c890
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TDataGeneratorVO.java
@@ -0,0 +1,19 @@
+package com.ruoyi.system.vo;
+
+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 TDataGeneratorVO extends TDataGenerator {
+
+    @ApiModelProperty(value = "店铺名称")
+    private String shopName;
+    @ApiModelProperty(value = "营业额合计")
+    private BigDecimal totalRevenue;
+
+}
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 6ab93b6..aa1a9b0 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -228,14 +228,15 @@
 		left join sys_user_role ur on u.user_id = ur.user_id
 		left join sys_role r on r.role_id = ur.role_id
 		WHERE u.del_flag = 0
-		<if test="query.nickName != null and query.nickName != ''">
-			AND u.nick_name LIKE concat('%',#{query.nickName},'%')
+		<if test="query.nickNameOrPhone != null and query.nickNameOrPhone != ''">
+			AND (u.nick_name LIKE concat('%',#{query.nickNameOrPhone},'%')
+				 OR u.phonenumber LIKE concat('%',#{query.nickNameOrPhone},'%'))
 		</if>
-		<if test="query.roleId != null">
-			AND r.role_id = #{query.roleId}
-		</if>
-		<if test="query.phonenumber != null and query.phonenumber != ''">
-			AND u.phonenumber LIKE concat('%',#{query.phonenumber},'%')
+		<if test="query.roleIds != null and query.roleIds.size()>0">
+			AND r.role_id in
+			<foreach collection="query.roleIds" separator="," item="id" open="(" close=")">
+				#{id}
+			</foreach>
 		</if>
 		<if test="query.status != null and query.status != ''">
 			AND u.status = #{query.status}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TDataGeneratorMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TDataGeneratorMapper.xml
index af72615..52fb97b 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TDataGeneratorMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TDataGeneratorMapper.xml
@@ -18,11 +18,44 @@
         <result column="disabled" property="disabled" />
         <result column="createBy" property="createBy" />
         <result column="updateBy" property="updateBy" />
+        <result column="orderType" property="orderType" />
+        <result column="weiXinPay" property="weiXinPay" />
+        <result column="aliPay"    property="aliPay" />
+        <result column="cardPay"   property="cardPay" />
+        <result column="moneyPay"  property="moneyPay" />
+        <result column="otherPay"  property="otherPay" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, userId, userName, shopId, startTime, endTime, minMoney, maxMoney, status, createTime, updateTime, disabled, createBy, updateBy
+        id, userId, userName, shopId, startTime, endTime, minMoney, maxMoney, status, createTime, updateTime, disabled, createBy, updateBy,orderType,weiXinPay,
+        aliPay,cardPay,moneyPay,otherPay
     </sql>
+    <select id="pageList" 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,
+               tdg.updateTime, tdg.disabled, tdg.createBy, tdg.updateBy,tdg.orderType,tdg.weiXinPay,tdg.aliPay,tdg.cardPay,tdg.moneyPay,tdg.otherPay,
+               ts.shopName
+        from t_data_generator tdg
+        left join t_shop ts on tdg.shopId = ts.id
+        <where>
+            <if test="query.shopName != null and query.shopName != ''">
+                and ts.shopName like concat('%', #{query.shopName}, '%')
+            </if>
+            <if test="query.userName != null and query.userName != ''">
+                and tdg.shopName like concat('%', #{query.userName}, '%')
+            </if>
+            <if test="query.status != null">
+                and tdg.status = #{query.status}
+            </if>
+            <if test="query.orderType != null">
+                and tdg.orderType = #{query.orderType}
+            </if>
+            <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
+                AND DATE_FORMAT(tdg.createTime, '%Y-%m-%d %H:%i:%s') BETWEEN #{query.startTime}
+                AND #{query.endTime}
+            </if>
+            AND tdg.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        </where>
+    </select>
 
 </mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml
index ffb3db1..394a3fb 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TOrderMealMapper.xml
@@ -18,11 +18,13 @@
         <result column="updateBy" property="updateBy" />
         <result column="orderNum" property="orderNum" />
         <result column="status" property="status" />
+        <result column="isCover" property="isCover" />
+        <result column="shopId" property="shopId" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, boardId, mealType, mealPerson, orderMoney, payMoney, payType, createTime, updateTime, disabled, createBy, updateBy, orderNum, status
+        id, boardId, mealType, mealPerson, orderMoney, payMoney, payType, createTime, updateTime, disabled, createBy, updateBy, orderNum, status,isCover,shopId
     </sql>
 
 </mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml
index 561422f..6944e12 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TOrderSaleMapper.xml
@@ -16,11 +16,12 @@
         <result column="status" property="status" />
         <result column="orderMoney" property="orderMoney" />
         <result column="payMoney" property="payMoney" />
+        <result column="shopId" property="shopId" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, orderTime, remark, createTime, updateTime, disabled, createBy, updateBy, orderNum, status,orderMoney,payMoney
+        id, orderTime, remark, createTime, updateTime, disabled, createBy, updateBy, orderNum, status,orderMoney,payMoney,shopId
     </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 a286d7c..7b80f34 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TOrderStockMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TOrderStockMapper.xml
@@ -7,17 +7,18 @@
         <id column="id" property="id" />
         <result column="stockNum" property="stockNum" />
         <result column="stockTime" property="stockTime" />
-        <result column="stockTotalPrice" property="stockTotalPrice" />
         <result column="createTime" property="createTime" />
         <result column="updateTime" property="updateTime" />
         <result column="disabled" property="disabled" />
         <result column="createBy" property="createBy" />
         <result column="updateBy" property="updateBy" />
+        <result column="isCover" property="isCover" />
+        <result column="shopId" property="shopId" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, stockNum, stockTime, stockTotalPrice, createTime, updateTime, disabled, createBy, updateBy
+        id, stockNum, stockTime, createTime, updateTime, disabled, createBy, updateBy,isCover,shopId
     </sql>
     <select id="pageList" resultType="com.ruoyi.system.vo.TOrderStockVO">
         SELECT <include refid="Base_Column_List"></include>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TStockDataSetMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TStockDataSetMapper.xml
new file mode 100644
index 0000000..722e993
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/TStockDataSetMapper.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.TStockDataSetMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.domain.TStockDataSet">
+        <id column="id" property="id" />
+        <result column="stockDate" property="stockDate" />
+        <result column="lossRate" property="lossRate" />
+        <result column="generatorId" property="generatorId" />
+        <result column="shopId" property="shopId" />
+        <result column="createTime" property="createTime" />
+        <result column="updateTime" property="updateTime" />
+        <result column="disabled" property="disabled" />
+        <result column="createBy" property="createBy" />
+        <result column="updateBy" property="updateBy" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,generatorId, stockDate, lossRate,shopId, createTime, updateTime, disabled, createBy, updateBy
+    </sql>
+
+</mapper>

--
Gitblit v1.7.1