From 96483f10fdb66727c3767826fcec6c99958e74b6 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期二, 27 八月 2024 17:21:23 +0800 Subject: [PATCH] 餐饮数据生成完成 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataGeneratorController.java | 44 +++++ ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java | 5 ruoyi-system/src/main/java/com/ruoyi/system/service/TShopService.java | 11 - ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 2 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderStockServiceImpl.java | 3 ruoyi-system/src/main/java/com/ruoyi/system/domain/TOrderMeal.java | 5 ruoyi-system/src/main/java/com/ruoyi/system/vo/TFoundationConfigVO.java | 15 + ruoyi-system/src/main/java/com/ruoyi/system/mapper/TDataGeneratorMapper.java | 17 ++ ruoyi-system/src/main/java/com/ruoyi/system/vo/TOrderMealVO.java | 10 + ruoyi-system/src/main/java/com/ruoyi/system/dto/TOrderMealDTO.java | 1 ruoyi-system/src/main/java/com/ruoyi/system/service/TFoundationConfigService.java | 9 + ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java | 6 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderSaleServiceImpl.java | 3 ruoyi-system/src/main/resources/mapper/system/TDataGeneratorMapper.xml | 28 +++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java | 196 ++++++++++++++++++++++++ ruoyi-system/src/main/resources/mapper/system/TFoundationConfigMapper.xml | 5 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TOrderMealServiceImpl.java | 5 ruoyi-admin/src/main/resources/application-druid.yml | 2 ruoyi-system/src/main/java/com/ruoyi/system/domain/TDataGenerator.java | 64 ++++++++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationConfigServiceImpl.java | 7 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFoundationConfigMapper.java | 9 + ruoyi-system/src/main/java/com/ruoyi/system/dto/OrderMealGeneratorCountDTO.java | 3 ruoyi-system/src/main/java/com/ruoyi/system/service/TDataGeneratorService.java | 21 ++ 23 files changed, 440 insertions(+), 31 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 new file mode 100644 index 0000000..c52f3b8 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TDataGeneratorController.java @@ -0,0 +1,44 @@ +package com.ruoyi.web.controller.api; + + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.system.dto.OrderMealGeneratorDTO; +import com.ruoyi.system.service.TDataGeneratorService; +import com.ruoyi.system.service.TOrderMealService; +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; + +/** + * <p> + * 营业数据生成 前端控制器 + * </p> + * + * @author xiaochen + * @since 2024-08-27 + */ +@RestController +@RequestMapping("/t-data-generator") +public class TDataGeneratorController { + + private final TOrderMealService orderMealService; + private final TDataGeneratorService dataGeneratorService; + + @Autowired + public TDataGeneratorController(TOrderMealService orderMealService, TDataGeneratorService dataGeneratorService) { + this.orderMealService = orderMealService; + this.dataGeneratorService = dataGeneratorService; + } + + @ApiOperation( value = "餐饮数据生成") + @PostMapping(value = "/dataGenerator") + public AjaxResult<String> dataGenerator(@RequestBody OrderMealGeneratorDTO dto) { + dataGeneratorService.dataGenerator(dto); + return AjaxResult.success(); + } + +} + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java index d6b4098..9fc8f11 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java @@ -74,11 +74,5 @@ return AjaxResult.success(); } - @ApiOperation( value = "餐饮数据生成") - @PostMapping(value = "/dataGenerator") - public AjaxResult<String> dataGenerator(@RequestBody OrderMealGeneratorDTO dto) { - orderMealService.dataGenerator(dto); - return AjaxResult.success(); - } } diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index 9ee5a63..6f262ae 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -6,7 +6,7 @@ druid: # 主库数据源 master: - url: jdbc:mysql://192.168.110.34:3306/hollywood?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://192.168.110.34:3306/cashier?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: 123456 # url: jdbc:mysql://8.137.10.192:3306/sys_config?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8 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 new file mode 100644 index 0000000..47d6c04 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/TDataGenerator.java @@ -0,0 +1,64 @@ +package com.ruoyi.system.domain; + +import com.baomidou.mybatisplus.annotation.*; +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.io.Serializable; +import java.time.LocalDateTime; + +/** + * <p> + * 营业数据生成 + * </p> + * + * @author xiaochen + * @since 2024-08-27 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("t_data_generator") +@ApiModel(value="TDataGenerator对象", description="营业数据生成") +public class TDataGenerator extends BaseModel { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "操作人id") + @TableField("userId") + private Long userId; + + @ApiModelProperty(value = "操作人姓名") + @TableField("userName") + private String userName; + + @ApiModelProperty(value = "店铺id") + @TableField("shopId") + private Long shopId; + + @ApiModelProperty(value = "开始时间") + @TableField("startTime") + private LocalDateTime startTime; + + @ApiModelProperty(value = "结束时间") + @TableField("endTime") + private LocalDateTime endTime; + + @ApiModelProperty(value = "最小金额") + @TableField("minMoney") + private Double minMoney; + + @ApiModelProperty(value = "最大金额") + @TableField("maxMoney") + private Double maxMoney; + + @ApiModelProperty(value = "状态 1=生成中 2=待覆盖 3=已覆盖") + @TableField("status") + private Integer status; + +} 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 c2071c6..d81c0d2 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 @@ -10,6 +10,7 @@ import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; /** * <p> @@ -62,5 +63,9 @@ @TableField("status") private Integer status; + @ApiModelProperty(value = "商品集合") + @TableField(exist = false) + private List<TOrderMealGoods> mealOrderGoods;; + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/OrderMealGeneratorCountDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/OrderMealGeneratorCountDTO.java index 7a25c69..bf9749c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/OrderMealGeneratorCountDTO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/OrderMealGeneratorCountDTO.java @@ -14,6 +14,9 @@ @ApiModel(value = "OrderMealGeneratorCountDTO对象", description = "餐饮数据生成订单数量") public class OrderMealGeneratorCountDTO implements Serializable { + @ApiModelProperty(value = "餐桌id") + private Long boardId; + @ApiModelProperty(value = "桌号") private String boardName; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/TOrderMealDTO.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/TOrderMealDTO.java index c0fa0dd..8bde256 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/dto/TOrderMealDTO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/TOrderMealDTO.java @@ -1,6 +1,7 @@ package com.ruoyi.system.dto; import com.ruoyi.system.domain.TOrderMeal; +import com.ruoyi.system.domain.TOrderMealGoods; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; 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 new file mode 100644 index 0000000..7ada9fb --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TDataGeneratorMapper.java @@ -0,0 +1,17 @@ +package com.ruoyi.system.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.system.domain.TDataGenerator; + +/** + * <p> + * 营业数据生成 Mapper 接口 + * </p> + * + * @author xiaochen + * @since 2024-08-27 + */ +public interface TDataGeneratorMapper extends BaseMapper<TDataGenerator> { + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFoundationConfigMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFoundationConfigMapper.java index d37c9e4..8211978 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFoundationConfigMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TFoundationConfigMapper.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.system.domain.TFoundationConfig; +import com.ruoyi.system.vo.TFoundationConfigVO; + +import java.util.List; /** * <p> @@ -13,4 +16,10 @@ */ public interface TFoundationConfigMapper extends BaseMapper<TFoundationConfig> { + /** + * 查询所有的人数用餐标准 + * @return + */ + List<TFoundationConfigVO> getList(); + } 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 new file mode 100644 index 0000000..39d4e54 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TDataGeneratorService.java @@ -0,0 +1,21 @@ +package com.ruoyi.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.system.domain.TDataGenerator; +import com.ruoyi.system.dto.OrderMealGeneratorDTO; + +/** + * <p> + * 营业数据生成 服务类 + * </p> + * + * @author xiaochen + * @since 2024-08-27 + */ +public interface TDataGeneratorService extends IService<TDataGenerator> { + /** + * 餐饮数据生成 + * @param dto + */ + void dataGenerator(OrderMealGeneratorDTO dto); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TFoundationConfigService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TFoundationConfigService.java index 961962b..3db8624 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TFoundationConfigService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TFoundationConfigService.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.domain.TFoundationConfig; +import com.ruoyi.system.vo.TFoundationConfigVO; + +import java.util.List; /** * <p> @@ -13,4 +16,10 @@ */ public interface TFoundationConfigService extends IService<TFoundationConfig> { + /** + * 查询所有的人数用餐标准 + * @return + */ + List<TFoundationConfigVO> getList(); + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java index 7e6bd17..028cc10 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TOrderMealService.java @@ -36,9 +36,4 @@ */ void checkout(CheckoutDTO dto); - /** - * 餐饮数据生成 - * @param dto - */ - void dataGenerator(OrderMealGeneratorDTO dto); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TShopService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TShopService.java index b813d5a..ca871ff 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TShopService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TShopService.java @@ -24,15 +24,4 @@ */ PageInfo<TShopVO> pageList(TShopQuery query); - /** - * 添加店铺信息 - * @param dto - */ - void add(TShopDTO dto); - - /** - * 编辑店铺信息 - * @param dto - */ - void edit(TShopDTO dto); } 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 new file mode 100644 index 0000000..527d183 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TDataGeneratorServiceImpl.java @@ -0,0 +1,196 @@ +package com.ruoyi.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.constant.OrderNumConstants; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.CodeGenerateUtils; +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.mapper.TDataGeneratorMapper; +import com.ruoyi.system.service.*; +import com.ruoyi.system.vo.TFoundationConfigVO; +import org.apache.poi.ss.formula.functions.T; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.*; +import java.util.stream.Collectors; + +/** + * <p> + * 营业数据生成 服务实现类 + * </p> + * + * @author xiaochen + * @since 2024-08-27 + */ +@Service +public class TDataGeneratorServiceImpl extends ServiceImpl<TDataGeneratorMapper, TDataGenerator> implements TDataGeneratorService { + + @Autowired + private TBoardService boardService; + @Autowired + private TFoundationConfigService foundationConfigService; + @Autowired + private TGoodsService goodsService; + @Autowired + private TOrderMealService orderMealService; + @Autowired + private TOrderMealGoodsService orderMealGoodsService; + + @Override + public void dataGenerator(OrderMealGeneratorDTO dto) { + long start = System.currentTimeMillis(); + // 查询所有的人数用餐标准 + List<TFoundationConfigVO> foundationConfigs = foundationConfigService.getList(); + // 查询所有桌子 + List<TBoard> boards = boardService.list(); + // 查询所有菜品 + List<TGoods> goods = goodsService.list(); + // 循环待生成订单列表,添加到集合中,批量插入 + List<OrderMealGeneratorCountDTO> orderMealGeneratorCountDTOS = dto.getOrderMealGeneratorCountDTOS(); + List<TOrderMeal> orderMeals = new ArrayList<>(); + for (OrderMealGeneratorCountDTO orderMealGeneratorCountDTO : orderMealGeneratorCountDTOS) { + TBoard board = boards.stream().filter(e -> e.getId().equals(orderMealGeneratorCountDTO.getBoardId())).findFirst().get(); + Integer orderCount = orderMealGeneratorCountDTO.getOrderCount(); + // 查询当前桌的用餐人数 + for (int i = 1; i <= orderCount; i++) { + int random = getRandom(board.getMinPerson(), board.getMaxPerson()); + TOrderMeal orderMeal = new TOrderMeal(); + orderMeal.setBoardId(board.getId()); + orderMeal.setMealType(1); + orderMeal.setMealPerson(random); + orderMeal.setOrderNum(OrderNumConstants.MEAL + CodeGenerateUtils.generateOrderSn()); + orderMeal.setStatus(2); + List<TOrderMealGoods> orderMealGoods = new ArrayList<>(); + List<TFoundationConfigVO> foundationConfigVOS = foundationConfigs.stream().filter(e -> e.getMealCount().equals(random)).collect(Collectors.toList()); + foundationConfigVOS.forEach(e -> { + int random1 = getRandom(e.getMinCount(), e.getMaxCount()); + List<TGoods> typeGoods = goods.stream().filter(m -> e.getTypeId().equals(m.getTypeId())).collect(Collectors.toList()); + typeGoods = randomSelection(typeGoods, random1); + for (TGoods typeGood : typeGoods) { + int count = 0; + for (TOrderMealGoods good : orderMealGoods) { + if (good.getGoodsNum().equals(typeGood.getGoodsNum())) { + count+=1; + good.setGoodsCount(good.getGoodsCount() + 1); + break; // 找到后直接跳出循环 + } + } + if (count==0) { + TOrderMealGoods tOrderMealGoods = new TOrderMealGoods(); + tOrderMealGoods.setGoodsNum(typeGood.getGoodsNum()); + tOrderMealGoods.setGoodsName(typeGood.getGoodsName()); + tOrderMealGoods.setGoodsPicture(typeGood.getGoodsPicture()); + tOrderMealGoods.setGoodsSalePrice(typeGood.getSalePrice()); + tOrderMealGoods.setGoodsCount(1); + orderMealGoods.add(tOrderMealGoods); + } + } + }); + orderMeal.setMealOrderGoods(orderMealGoods); + orderMeal.setOrderMoney(orderMealGoods.stream().map(TOrderMealGoods::getGoodsSalePrice).reduce(BigDecimal::add).get()); + orderMeal.setPayMoney(orderMealGoods.stream().map(TOrderMealGoods::getGoodsSalePrice).reduce(BigDecimal::add).get()); + orderMeals.add(orderMeal); + } + } + BigDecimal sumMoney = orderMeals.stream().map(TOrderMeal::getPayMoney).reduce(BigDecimal::add).get(); + if(sumMoney.compareTo(dto.getMinTurnover()) >= 0 || sumMoney.compareTo(dto.getMaxTurnover()) <= 0){ + int weiXin = getRandomPayType(orderMeals.size(), dto.getWeiXinProportion()); + int ali = getRandomPayType(orderMeals.size(), dto.getAliProportion()); + int card = getRandomPayType(orderMeals.size(), dto.getCardProportion()); + int money = getRandomPayType(orderMeals.size(), dto.getMoneyProportion()); + int other = getRandomPayType(orderMeals.size(), dto.getOtherProportion()); + switch (orderMeals.size()-(weiXin+ali+card+money+other)){ + case 1: + weiXin += 1; + break; + case 2: + weiXin += 1; + ali += 1; + break; + case 3: + weiXin += 1; + ali += 1; + card += 1; + break; + case 4: + weiXin += 1; + ali += 1; + card += 1; + money += 1; + break; + case 5: + weiXin += 1; + ali += 1; + card += 1; + money += 1; + other += 1; + break; + } + List<TOrderMeal> weiXinOrderMeals = orderMeals.subList(0, weiXin); + List<TOrderMeal> aliOrderMeals = orderMeals.subList(weiXin, weiXin+ali); + List<TOrderMeal> cardOrderMeals = orderMeals.subList(weiXin+ali, weiXin+ali+card); + List<TOrderMeal> moneyOrderMeals = orderMeals.subList(weiXin+ali+card, weiXin+ali+card+money); + List<TOrderMeal> otherOrderMeals = orderMeals.subList(weiXin+ali+card+money, weiXin+ali+card+money+other); + weiXinOrderMeals.forEach(e->e.setPayType(3)); + aliOrderMeals.forEach(e->e.setPayType(2)); + cardOrderMeals.forEach(e->e.setPayType(4)); + moneyOrderMeals.forEach(e->e.setPayType(1)); + otherOrderMeals.forEach(e->e.setPayType(5)); + List<TOrderMeal> allOrderMeals = new ArrayList<>(); + allOrderMeals.addAll(weiXinOrderMeals); + allOrderMeals.addAll(aliOrderMeals); + allOrderMeals.addAll(cardOrderMeals); + allOrderMeals.addAll(moneyOrderMeals); + allOrderMeals.addAll(otherOrderMeals); + orderMealService.saveBatch(allOrderMeals); + + for (TOrderMeal weiXinOrderMeal : allOrderMeals) { + weiXinOrderMeal.getMealOrderGoods().forEach(e->e.setOrderId(weiXinOrderMeal.getId())); + } + orderMealGoodsService.saveBatch(allOrderMeals.stream().map(TOrderMeal::getMealOrderGoods).flatMap(Collection::stream).collect(Collectors.toList())); + long end = System.currentTimeMillis() - start; + System.err.println("相差时间========="+end); + }else { + throw new ServiceException("数据生成不在营业额范围内"); + } + + } + + 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()); + } + + private int getRandom(int min,int max) { + // 生成一个min到max之间的随机数 + return new Random().nextInt(max - min + 1) + min; + } + + private static <T> List<T> randomSelection(List<T> list, int size) { + List<T> selected = new ArrayList<>(); + int length = list.size(); + for (int i = 0; i < size; i++) { + Collections.shuffle(list); + // 如果需求的大小超过了集合的长度,则只能取到集合的全部元素 + int subListSize = Math.min(size - selected.size(), length); + selected.addAll(list.subList(0, subListSize)); + } + return selected; + } + + public static void main(String[] args) { +// System.err.println(new Random().nextInt(1 - 0 + 1) + 0); + List<Integer> list = new ArrayList<>(); + list.add(1); + list.add(2); + list.add(3); + list.add(4); + System.err.println(list.subList(1,2)); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationConfigServiceImpl.java index 6946443..b7b4fce 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationConfigServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TFoundationConfigServiceImpl.java @@ -4,7 +4,10 @@ import com.ruoyi.system.domain.TFoundationConfig; import com.ruoyi.system.mapper.TFoundationConfigMapper; import com.ruoyi.system.service.TFoundationConfigService; +import com.ruoyi.system.vo.TFoundationConfigVO; import org.springframework.stereotype.Service; + +import java.util.List; /** * <p> @@ -17,4 +20,8 @@ @Service public class TFoundationConfigServiceImpl extends ServiceImpl<TFoundationConfigMapper, TFoundationConfig> implements TFoundationConfigService { + @Override + public List<TFoundationConfigVO> getList() { + return this.baseMapper.getList(); + } } 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 61b49af..cc9e9cb 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 @@ -25,6 +25,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.Random; import java.util.stream.Collectors; /** @@ -137,8 +138,4 @@ boardService.updateById(board); } - @Override - public void dataGenerator(OrderMealGeneratorDTO dto) { - // 循环待生成订单列表,添加到集合中,批量插入 - } } 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 27ea1da..ce3a1b9 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 @@ -1,6 +1,7 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.constant.OrderNumConstants; import com.ruoyi.common.utils.CodeGenerateUtils; import com.ruoyi.system.domain.TOrderSale; import com.ruoyi.system.domain.TOrderSaleGoods; @@ -31,7 +32,7 @@ @Override public void add(TOrderSaleDTO dto) { // 销售单号 - dto.setOrderNum("XS" + CodeGenerateUtils.generateOrderSn()); + dto.setOrderNum(OrderNumConstants.SALE + CodeGenerateUtils.generateOrderSn()); List<TOrderSaleGoods> orderSaleGoods = dto.getOrderSaleGoods(); BigDecimal sum = orderSaleGoods.stream().map(TOrderSaleGoods::getGoodsSalePrice).reduce(BigDecimal::add).get(); dto.setOrderMoney(sum); 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 4aa239d..3987209 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 @@ -3,6 +3,7 @@ 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.OrderNumConstants; import com.ruoyi.common.utils.CodeGenerateUtils; import com.ruoyi.system.domain.TOrderSaleGoods; import com.ruoyi.system.domain.TOrderStock; @@ -38,7 +39,7 @@ @Override public void add(TOrderStockDTO dto) { // 进货单号 - dto.setStockNum("JH" + CodeGenerateUtils.generateOrderSn()); + dto.setStockNum(OrderNumConstants.STOCK + CodeGenerateUtils.generateOrderSn()); List<TOrderStockGoods> orderStockGoods = dto.getOrderStockGoods(); BigDecimal sum = orderStockGoods.stream().map(TOrderStockGoods::getStockPrice).reduce(BigDecimal::add).get(); dto.setStockTotalPrice(sum); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TFoundationConfigVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TFoundationConfigVO.java new file mode 100644 index 0000000..43b9c91 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TFoundationConfigVO.java @@ -0,0 +1,15 @@ +package com.ruoyi.system.vo; + +import com.ruoyi.system.domain.TFoundationConfig; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "用餐人数VO") +public class TFoundationConfigVO extends TFoundationConfig { + + @ApiModelProperty(value = "用餐人数") + private Integer mealCount; + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TOrderMealVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TOrderMealVO.java new file mode 100644 index 0000000..91bcd34 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TOrderMealVO.java @@ -0,0 +1,10 @@ +package com.ruoyi.system.vo; + +import com.ruoyi.system.domain.TOrderMeal; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +@Data +@ApiModel(value = "TOrderMealVO对象",description = "餐饮订单VO") +public class TOrderMealVO extends TOrderMeal { +} diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 0333c0a..6ab93b6 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -302,8 +302,6 @@ <if test="loginDate != null">login_date = #{loginDate},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> <if test="remark != null">remark = #{remark},</if> - <if test="ifBlack != null">ifBlack = #{ifBlack},</if> - <if test="districtId != null">districtId = #{districtId},</if> update_time = sysdate() </set> where user_id = #{userId} diff --git a/ruoyi-system/src/main/resources/mapper/system/TDataGeneratorMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TDataGeneratorMapper.xml new file mode 100644 index 0000000..af72615 --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/TDataGeneratorMapper.xml @@ -0,0 +1,28 @@ +<?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.TDataGeneratorMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.ruoyi.system.domain.TDataGenerator"> + <id column="id" property="id" /> + <result column="userId" property="userId" /> + <result column="userName" property="userName" /> + <result column="shopId" property="shopId" /> + <result column="startTime" property="startTime" /> + <result column="endTime" property="endTime" /> + <result column="minMoney" property="minMoney" /> + <result column="maxMoney" property="maxMoney" /> + <result column="status" property="status" /> + <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, userId, userName, shopId, startTime, endTime, minMoney, maxMoney, status, createTime, updateTime, disabled, createBy, updateBy + </sql> + +</mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/TFoundationConfigMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TFoundationConfigMapper.xml index 3c49e71..5432c03 100644 --- a/ruoyi-system/src/main/resources/mapper/system/TFoundationConfigMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/TFoundationConfigMapper.xml @@ -15,5 +15,10 @@ <sql id="Base_Column_List"> id, personId,typeId, minCount, maxCount </sql> + <select id="getList" resultType="com.ruoyi.system.vo.TFoundationConfigVO"> + SELECT tfc.id, tfc.personId,tfc.typeId, tfc.minCount, tfc.maxCount,tfp.mealCount + FROM t_foundation_config tfc + LEFT JOIN t_foundation_person tfp ON tfp.id = tfc.personId + </select> </mapper> -- Gitblit v1.7.1