Bladeren bron

Merge branch 'master' of http://49.4.53.36:3000/hotel/hotel-saas-backend

WIN-B904R0U0NNS\Administrator 2 jaren geleden
bovenliggende
commit
24cc1f2fc9

+ 40 - 31
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/pos/controller/PosOrderGoodsController.java

@@ -20,16 +20,13 @@ import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.TokenUtils;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.pos.entity.*;
-import org.jeecg.modules.pos.service.IPosOrderGoodsDetailService;
-import org.jeecg.modules.pos.service.IPosOrderGoodsPaymentService;
-import org.jeecg.modules.pos.service.IPosOrderGoodsService;
+import org.jeecg.modules.pos.service.*;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
-import org.jeecg.modules.pos.service.IPosTypeService;
 import org.jeecg.modules.rooms.entity.CesGoods;
 import org.jeecg.modules.rooms.service.CesGoodsServiceImpl;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
@@ -70,6 +67,8 @@ private CesGoodsServiceImpl cesGoodsService;
 private IPosTypeService posTypeService;
 @Autowired
 private IPosOrderGoodsPaymentService posOrderGoodsPaymentService;
+@Autowired
+private IPosTableService posTableService;
 	/**
 	 * 分页列表查询
 	 *
@@ -122,43 +121,49 @@ private IPosOrderGoodsPaymentService posOrderGoodsPaymentService;
 	 @ApiOperation(value="pos_order_goods-添加", notes="pos_order_goods-添加")
 	 //@RequiresPermissions("pos:pos_order_goods:add")
 	 @PostMapping(value = "/add")
-	 public Result<String> add(@RequestBody PosOrderGoods posOrderGoods) {
+	 public Result<PosOrderGoods> add(@RequestBody PosOrderGoods posOrderGoods) {
 		 if (ObjectUtils.isEmpty(posOrderGoods.getPosOrderGoodsDetailList())) {
 			 return Result.error("请先选择商品");
 		 }
 
-		 if(ObjectUtils.isEmpty(posOrderGoods.getId())) {
-			 LocalDateTime localDateTime = LocalDateTime.now().withNano(0).withSecond(0).withMinute(0).withHour(0);
-			 LocalDateTime[] arr = new LocalDateTime[]{localDateTime, localDateTime.withHour(23).withMinute(59)};
-			 LambdaQueryWrapper<PosOrderGoods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-			 lambdaQueryWrapper.eq(PosOrderGoods::getHotelId, posOrderGoods.getHotelId());
-			 lambdaQueryWrapper.ge(PosOrderGoods::getCreateTime, arr[0]);
-			 lambdaQueryWrapper.le(PosOrderGoods::getCreateTime, arr[1]);
-			 lambdaQueryWrapper.isNull(PosOrderGoods::getPosTableId);
-			 Page<PosOrderGoods> page = new Page<PosOrderGoods>(1, 1);
-			 lambdaQueryWrapper.orderByDesc(PosOrderGoods::getCreateTime);
-			 IPage<PosOrderGoods> pageList = posOrderGoodsService.page(page, lambdaQueryWrapper);
-			 if (ObjectUtils.isNotEmpty(pageList.getRecords())) {
-				 String no = pageList.getRecords().get(0).getTableNo();
-				 try {
-					 Integer newNo = Integer.parseInt(no) + 1;
-					 posOrderGoods.setTableNo(String.format("%03d", newNo));
-				 } catch (NumberFormatException ex) {
+		 if (ObjectUtils.isEmpty(posOrderGoods.getId())) {
+			 if (ObjectUtils.isEmpty(posOrderGoods.getPosTableId())) {
+				 LocalDateTime localDateTime = LocalDateTime.now().withNano(0).withSecond(0).withMinute(0).withHour(0);
+				 LocalDateTime[] arr = new LocalDateTime[]{localDateTime, localDateTime.withHour(23).withMinute(59)};
+				 LambdaQueryWrapper<PosOrderGoods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+				 lambdaQueryWrapper.eq(PosOrderGoods::getHotelId, posOrderGoods.getHotelId());
+				 lambdaQueryWrapper.ge(PosOrderGoods::getCreateTime, arr[0]);
+				 lambdaQueryWrapper.le(PosOrderGoods::getCreateTime, arr[1]);
+				 lambdaQueryWrapper.isNull(PosOrderGoods::getPosTableId);
+				 Page<PosOrderGoods> page = new Page<PosOrderGoods>(1, 1);
+				 lambdaQueryWrapper.orderByDesc(PosOrderGoods::getCreateTime);
+				 IPage<PosOrderGoods> pageList = posOrderGoodsService.page(page, lambdaQueryWrapper);
+				 if (ObjectUtils.isNotEmpty(pageList.getRecords())) {
+					 String no = pageList.getRecords().get(0).getTableNo();
+					 try {
+						 Integer newNo = Integer.parseInt(no) + 1;
+						 posOrderGoods.setTableNo(String.format("%03d", newNo));
+					 } catch (NumberFormatException ex) {
+						 posOrderGoods.setTableNo("001");
+					 }
+				 } else {
 					 posOrderGoods.setTableNo("001");
 				 }
-			 } else {
-				 posOrderGoods.setTableNo("001");
 			 }
 			 posOrderGoods.setCode(randomNumber("P"));
-		 }else {
+		 } else {
 			 List<PosOrderGoodsDetail> list = posOrderGoods.getPosOrderGoodsDetailList();
-			 String toRoomFeeOrderId=posOrderGoods.getToRoomFeeOrderId();
+			 String toRoomFeeOrderId = posOrderGoods.getToRoomFeeOrderId();
+			 String tableId=posOrderGoods.getPosTableId();
+			 String tableNo=posOrderGoods.getTableNo();
 			 posOrderGoods = posOrderGoodsService.getById(posOrderGoods.getId());
 			 posOrderGoods.setPosOrderGoodsDetailList(list);
 			 posOrderGoods.setToRoomFeeOrderId(toRoomFeeOrderId);
+			 posOrderGoods.setPosTableId(tableId);
+			 posOrderGoods.setTableNo(tableNo);
 		 }
-		 if(ObjectUtils.isNotEmpty(posOrderGoods.getToRoomFeeOrderId())){
-		 	posOrderGoods.setStatus(1);
+		 if (ObjectUtils.isNotEmpty(posOrderGoods.getToRoomFeeOrderId())) {
+			 posOrderGoods.setStatus(1);
 		 }
 		 posOrderGoods.setTenantId(TokenUtils.currentTenantId());
 		 BigDecimal amount = BigDecimal.ZERO;
@@ -176,8 +181,8 @@ private IPosOrderGoodsPaymentService posOrderGoodsPaymentService;
 		 posOrderGoods.setCreateTime(new Date());
 		 Boolean res = posOrderGoodsService.saveOrUpdate(posOrderGoods);
 		 if (res) {
-		 	LambdaQueryWrapper<PosOrderGoodsDetail> lambdaQueryWrapper =new LambdaQueryWrapper<>();
-		 	lambdaQueryWrapper.eq(PosOrderGoodsDetail::getOrderId,posOrderGoods.getCode());
+			 LambdaQueryWrapper<PosOrderGoodsDetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+			 lambdaQueryWrapper.eq(PosOrderGoodsDetail::getOrderId, posOrderGoods.getCode());
 			 posOrderGoodsDetailService.remove(lambdaQueryWrapper);
 			 res = posOrderGoodsDetailService.saveBatch(posOrderGoods.getPosOrderGoodsDetailList());
 			 if (res) {
@@ -194,8 +199,12 @@ private IPosOrderGoodsPaymentService posOrderGoodsPaymentService;
 					 }
 				 }
 			 }
+			 LambdaUpdateWrapper<PosTable> lambdaUpdateWrapper=new LambdaUpdateWrapper<>();
+			 lambdaUpdateWrapper.eq(PosTable::getId,posOrderGoods.getPosTableId());
+			 lambdaUpdateWrapper.set(PosTable::getState,2);
+			 posTableService.update(lambdaUpdateWrapper);
 		 }
-		 return Result.OK("添加成功", posOrderGoods.getCode());
+		 return Result.OK("添加成功", posOrderGoods);
 	 }
 
 	 /**

+ 12 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/pos/controller/PosOrderGoodsPaymentController.java

@@ -24,6 +24,7 @@ import org.jeecg.modules.business.service.IBusRoomPayTypeService;
 import org.jeecg.modules.pos.dto.OrderPaymentDto;
 import org.jeecg.modules.pos.entity.PosOrderGoods;
 import org.jeecg.modules.pos.entity.PosOrderGoodsPayment;
+import org.jeecg.modules.pos.entity.PosTable;
 import org.jeecg.modules.pos.service.IPosOrderGoodsPaymentService;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -32,6 +33,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
 import org.jeecg.modules.pos.service.IPosOrderGoodsService;
+import org.jeecg.modules.pos.service.IPosTableService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -66,6 +68,8 @@ public class PosOrderGoodsPaymentController extends JeecgController<PosOrderGood
 	 private IPosOrderGoodsService posOrderGoodsService;
 	 @Autowired
 	 private IBusRoomPayTypeService busRoomPayTypeService;
+	 @Autowired
+	 private IPosTableService posTableService;
 	/**
 	 * 分页列表查询
 	 *
@@ -109,7 +113,7 @@ public class PosOrderGoodsPaymentController extends JeecgController<PosOrderGood
 			return Result.error("订单不存在");
 		}
 		BigDecimal sum = BigDecimal.ZERO;
-		String payInfo="";
+		String payInfo = "";
 		for (PosOrderGoodsPayment posOrderGoodsPayment : dto.getPaymentList()) {
 			posOrderGoodsPayment.setTenantId(posOrderGoods.getTenantId());
 			posOrderGoodsPayment.setHotelId(posOrderGoods.getHotelId());
@@ -126,6 +130,13 @@ public class PosOrderGoodsPaymentController extends JeecgController<PosOrderGood
 		posOrderGoods.setCouponMoney(posOrderGoods.getConsumeMoney().subtract(sum));
 		posOrderGoods.setPayInfo(payInfo);
 		posOrderGoodsService.updateById(posOrderGoods);
+
+		if (ObjectUtils.isNotEmpty(posOrderGoods.getPosTableId())) {
+			LambdaUpdateWrapper<PosTable> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+			lambdaUpdateWrapper.eq(PosTable::getId, posOrderGoods.getPosTableId());
+			lambdaUpdateWrapper.set(PosTable::getState, 4);
+			posTableService.update(lambdaUpdateWrapper);
+		}
 		return Result.OK("添加成功!");
 	}
 

+ 72 - 8
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/pos/controller/PosTableController.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.pos.controller;
 
 import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -9,6 +10,9 @@ import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.apache.commons.lang3.ObjectUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.query.QueryGenerator;
@@ -17,20 +21,14 @@ import org.jeecg.common.util.TokenUtils;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.business.entity.BusHotel;
 import org.jeecg.modules.business.service.IBusHotelService;
-import org.jeecg.modules.pos.entity.PosRegion;
-import org.jeecg.modules.pos.entity.PosTable;
-import org.jeecg.modules.pos.entity.PosTableType;
-import org.jeecg.modules.pos.entity.PosType;
-import org.jeecg.modules.pos.service.IPosRegionService;
-import org.jeecg.modules.pos.service.IPosTableService;
+import org.jeecg.modules.pos.entity.*;
+import org.jeecg.modules.pos.service.*;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
-import org.jeecg.modules.pos.service.IPosTableTypeService;
-import org.jeecg.modules.pos.service.IPosTypeService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -67,6 +65,8 @@ public class PosTableController extends JeecgController<PosTable, IPosTableServi
 	 private IPosRegionService posRegionService;
 	 @Autowired
 	 private IPosTableTypeService posTableTypeService;
+	 @Autowired
+	 private IPosOrderGoodsService posOrderGoodsService;
 	/**
 	 * 分页列表查询
 	 *
@@ -103,6 +103,39 @@ public class PosTableController extends JeecgController<PosTable, IPosTableServi
 		return Result.OK(pageList);
 	}
 
+	 /**
+	  * 查询桌台用餐列表
+	  * @param posTable
+	  * @param pageNo
+	  * @param pageSize
+	  * @param req
+	  * @return
+	  */
+	 @ApiOperation(value="pos_table-分页列表查询", notes="pos_table-分页列表查询")
+	 @GetMapping(value = "/tableList")
+	 public Result<IPage<PosTable>> tableList(PosTable posTable,
+												  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+												  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+												  HttpServletRequest req) {
+		 QueryWrapper<PosTable> queryWrapper = QueryGenerator.initQueryWrapper(posTable, req.getParameterMap());
+		 Page<PosTable> page = new Page<PosTable>(pageNo, pageSize);
+		 IPage<PosTable> pageList = posTableService.page(page, queryWrapper);
+		 pageList.getRecords().forEach(item -> {
+		 	if(item.getState().equals(2)||item.getState().equals(3)||item.getState().equals(4)) {
+				LambdaQueryWrapper<PosOrderGoods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+				lambdaQueryWrapper.eq(PosOrderGoods::getPosTableId, item.getId());
+				lambdaQueryWrapper.orderByDesc(PosOrderGoods::getCreateTime);
+				Page<PosOrderGoods> page2 = new Page<PosOrderGoods>(1, 1);
+				lambdaQueryWrapper.orderByDesc(PosOrderGoods::getCreateTime);
+				IPage<PosOrderGoods> posOrderGoodsList = posOrderGoodsService.page(page2, lambdaQueryWrapper);
+				if (ObjectUtils.isNotEmpty(posOrderGoodsList.getRecords())) {
+					item.setPosOrderGoods(posOrderGoodsList.getRecords().get(0));
+				}
+			}
+		 });
+		 return Result.OK(pageList);
+	 }
+
 	/**
 	 *   添加
 	 *
@@ -126,6 +159,26 @@ public class PosTableController extends JeecgController<PosTable, IPosTableServi
 		return Result.OK("添加成功!");
 	}
 
+	 /**
+	  *  桌台用餐下单
+	  *
+	  * @param posTable
+	  * @return
+	  */
+	 @AutoLog(value = "pos_table-桌台用餐下单")
+	 @ApiOperation(value="pos_table-桌台用餐下单", notes="pos_table-桌台用餐下单")
+	 @RequestMapping(value = "/addOrder", method = {RequestMethod.PUT,RequestMethod.POST})
+	 public Result<String> addOrder(@RequestBody PosTable posTable) {
+		 PosTable table = posTableService.getById(posTable.getId());
+		 if (!table.getState().equals(0)) {
+			 return Result.error("不是空桌状态,不能下单!");
+		 }
+		 posTable.setState(1);
+		 posTable.setOrderTime(new Date());
+		 posTableService.updateById(posTable);
+		 return Result.OK("下单成功!");
+	 }
+
 	/**
 	 *  编辑
 	 *
@@ -185,6 +238,17 @@ public class PosTableController extends JeecgController<PosTable, IPosTableServi
 		if(posTable==null) {
 			return Result.error("未找到对应数据");
 		}
+		if(posTable.getState().equals(2)) {
+			LambdaQueryWrapper<PosOrderGoods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+			lambdaQueryWrapper.eq(PosOrderGoods::getPosTableId, posTable.getId());
+			lambdaQueryWrapper.orderByDesc(PosOrderGoods::getCreateTime);
+			Page<PosOrderGoods> page2 = new Page<PosOrderGoods>(1, 1);
+			lambdaQueryWrapper.orderByDesc(PosOrderGoods::getCreateTime);
+			IPage<PosOrderGoods> posOrderGoodsList = posOrderGoodsService.page(page2, lambdaQueryWrapper);
+			if (ObjectUtils.isNotEmpty(posOrderGoodsList.getRecords())) {
+				posTable.setPosOrderGoods(posOrderGoodsList.getRecords().get(0));
+			}
+		}
 		return Result.OK(posTable);
 	}
 

+ 13 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/pos/entity/PosTable.java

@@ -70,6 +70,15 @@ public class PosTable implements Serializable {
 	@Excel(name = "状态", width = 15)
     @ApiModelProperty(value = "状态")
     private java.lang.Integer state;
+    /**下单时间*/
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "下单时间")
+    private Date orderTime;
+    /**就餐人数*/
+    @Excel(name = "就餐人数", width = 15)
+    @ApiModelProperty(value = "就餐人数")
+    private java.lang.Integer userNum;
 
 	@TableField(exist = false)
 	private  String typeName;
@@ -80,4 +89,8 @@ public class PosTable implements Serializable {
     @TableField(exist = false)
     private  String tableTypeName;
 
+
+
+    @TableField(exist = false)
+    private  PosOrderGoods posOrderGoods;
 }