|
|
@@ -115,29 +115,41 @@ private CesGoodsServiceImpl cesGoodsService;
|
|
|
if (ObjectUtils.isEmpty(posOrderGoods.getPosOrderGoodsDetailList())) {
|
|
|
return Result.error("请先选择商品");
|
|
|
}
|
|
|
- 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);
|
|
|
- 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())) {
|
|
|
+ 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 {
|
|
|
+ List<PosOrderGoodsDetail> list = posOrderGoods.getPosOrderGoodsDetailList();
|
|
|
+ String toRoomFeeOrderId=posOrderGoods.getToRoomFeeOrderId();
|
|
|
+ posOrderGoods = posOrderGoodsService.getById(posOrderGoods.getId());
|
|
|
+ posOrderGoods.setPosOrderGoodsDetailList(list);
|
|
|
+ posOrderGoods.setToRoomFeeOrderId(toRoomFeeOrderId);
|
|
|
+ }
|
|
|
+ if(ObjectUtils.isNotEmpty(posOrderGoods.getToRoomFeeOrderId())){
|
|
|
+ posOrderGoods.setStatus(1);
|
|
|
}
|
|
|
posOrderGoods.setTenantId(TokenUtils.currentTenantId());
|
|
|
- posOrderGoods.setCode(randomNumber("P"));
|
|
|
-
|
|
|
BigDecimal amount = BigDecimal.ZERO;
|
|
|
for (PosOrderGoodsDetail posOrderGoodsDetail : posOrderGoods.getPosOrderGoodsDetailList()) {
|
|
|
amount = amount.add(posOrderGoodsDetail.getMoney().multiply(BigDecimal.valueOf(posOrderGoodsDetail.getNum())));
|
|
|
@@ -151,9 +163,11 @@ private CesGoodsServiceImpl cesGoodsService;
|
|
|
posOrderGoods.setMoney(amount);
|
|
|
posOrderGoods.setConsumeMoney(amount);
|
|
|
posOrderGoods.setCreateTime(new Date());
|
|
|
-
|
|
|
- Boolean res = posOrderGoodsService.save(posOrderGoods);
|
|
|
+ Boolean res = posOrderGoodsService.saveOrUpdate(posOrderGoods);
|
|
|
if (res) {
|
|
|
+ LambdaQueryWrapper<PosOrderGoodsDetail> lambdaQueryWrapper =new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(PosOrderGoodsDetail::getOrderId,posOrderGoods.getCode());
|
|
|
+ posOrderGoodsDetailService.remove(lambdaQueryWrapper);
|
|
|
res = posOrderGoodsDetailService.saveBatch(posOrderGoods.getPosOrderGoodsDetailList());
|
|
|
if (res) {
|
|
|
//商品减库存
|