gqx преди 2 години
родител
ревизия
ca6ed44ded
променени са 11 файла, в които са добавени 308 реда и са изтрити 19 реда
  1. 73 3
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMeetingRoomScheduleController.java
  2. 6 7
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMeetingRoomScheduleDetailController.java
  3. 2 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/PostDataDto.java
  4. 40 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMeetingRoomSchedule.java
  5. 72 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMeetingRoomScheduleOrderDetail.java
  6. 5 4
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusRoomPayType.java
  7. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusMeetingRoomScheduleOrderDetailMapper.java
  8. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusMeetingRoomScheduleOrderDetailMapper.xml
  9. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusMeetingRoomScheduleOrderDetailService.java
  10. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMeetingRoomScheduleOrderDetailServiceImpl.java
  11. 55 4
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMeetingRoomScheduleServiceImpl.java

+ 73 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMeetingRoomScheduleController.java

@@ -2,16 +2,23 @@ package org.jeecg.modules.business.controller;
 
 
 import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.Enum.ResultCode;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDetailDto;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDto;
-import org.jeecg.modules.business.entity.BusMeetingRoom;
-import org.jeecg.modules.business.entity.BusMeetingRoomSchedule;
-import org.jeecg.modules.business.entity.BusMeetingRoomScheduleDetail;
+import org.jeecg.modules.business.entity.*;
+import org.jeecg.modules.business.service.IBusMeetingRoomScheduleDetailService;
+import org.jeecg.modules.business.service.IBusMeetingRoomScheduleOrderDetailService;
+import org.jeecg.modules.business.service.IBusRoomPayTypeService;
 import org.jeecg.modules.business.service.impl.BusMeetingRoomScheduleServiceImpl;
 import org.jeecg.modules.business.service.impl.BusMeetingRoomServiceImpl;
 import org.springframework.web.bind.annotation.*;
@@ -19,6 +26,8 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.stereotype.Controller;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -37,6 +46,12 @@ public class BusMeetingRoomScheduleController {
 
     @Resource
     private BusMeetingRoomScheduleServiceImpl roomScheduleService;
+    @Resource
+    private IBusMeetingRoomScheduleOrderDetailService busMeetingRoomScheduleOrderDetailService;
+    @Resource
+    private IBusMeetingRoomScheduleDetailService busMeetingRoomScheduleDetailService;
+    @Resource
+    private IBusRoomPayTypeService busRoomPayTypeService;
 
     @ApiOperation(value="创建会议预定", notes="创建会议预定")
     @PostMapping(value = "/create")
@@ -115,5 +130,60 @@ public class BusMeetingRoomScheduleController {
         return Result.OK("编辑成功!");
     }
 
+    /**
+     * 分页列表查询
+     *
+     * @param busMeetingRoomSchedule
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    //@AutoLog(value = "bus_market_coupons_cash_info-分页列表查询")
+    @ApiOperation(value="bus_market_coupons_cash_info-分页列表查询", notes="bus_market_coupons_cash_info-分页列表查询")
+    @GetMapping(value = "/list")
+    public Result<IPage<BusMeetingRoomSchedule>> queryPageList(BusMeetingRoomSchedule busMeetingRoomSchedule,
+                                                             @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+                                                             @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+                                                             HttpServletRequest req) {
+        QueryWrapper<BusMeetingRoomSchedule> queryWrapper = QueryGenerator.initQueryWrapper(busMeetingRoomSchedule, req.getParameterMap());
+        Page<BusMeetingRoomSchedule> page = new Page<BusMeetingRoomSchedule>(pageNo, pageSize);
+        IPage<BusMeetingRoomSchedule> pageList = roomScheduleService.page(page, queryWrapper);
+        pageList.getRecords().forEach(item -> {
+            LambdaQueryWrapper<BusMeetingRoomScheduleOrderDetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper.eq(BusMeetingRoomScheduleOrderDetail::getMeetingRoomScheduleId, item.getId());
+            List<BusMeetingRoomScheduleOrderDetail> meetingRoomScheduleOrderDetailList = busMeetingRoomScheduleOrderDetailService.list(lambdaQueryWrapper);
+            if (ObjectUtils.isNotEmpty(meetingRoomScheduleOrderDetailList)) {
+                item.setOrderDetailList(meetingRoomScheduleOrderDetailList);
+                meetingRoomScheduleOrderDetailList.forEach(v -> {
+                    BusRoomPayType busRoomPayType = busRoomPayTypeService.getById(v.getPayWay());
+                    if (busRoomPayType != null) {
+                        v.setPayWayName(busRoomPayType.getName());
+                    }
+                });
+            }
+
+            LambdaQueryWrapper<BusMeetingRoomScheduleDetail> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper2.eq(BusMeetingRoomScheduleDetail::getMeetingRoomScheduleId, item.getId());
+            lambdaQueryWrapper2.eq(BusMeetingRoomScheduleDetail::getStatus, 0);
+            Long count = busMeetingRoomScheduleDetailService.count(lambdaQueryWrapper2);
+            item.setConfirmStatus(count > 0 ? 0 : 1);
+        });
+        return Result.OK(pageList);
+    }
+
+    /**
+     *  结账
+     *
+     * @param busMeetingRoomSchedule
+     * @return
+     */
+    @AutoLog(value = "bus_meeting_room-编辑")
+    @ApiOperation(value="bus_meeting_room-编辑", notes="bus_meeting_room-编辑")
+    //@RequiresPermissions("business:bus_meeting_room:edit")
+    @PostMapping(value = "/settle")
+    public Result<String> settle(@RequestBody BusMeetingRoomSchedule busMeetingRoomSchedule) {
+        return roomScheduleService.settle(busMeetingRoomSchedule);
+    }
 }
 

+ 6 - 7
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusMeetingRoomScheduleDetailController.java

@@ -114,16 +114,15 @@ public class BusMeetingRoomScheduleDetailController extends JeecgController<BusM
     /**
      *  批量确认
      *
-     * @param ids
+     * @param dto
      * @return
      */
     @AutoLog(value = "bus_market_coupons_cash_info-批量确认")
     @ApiOperation(value="bus_market_coupons_cash_info-批量确认", notes="bus_market_coupons_cash_info-批量确认")
     @PostMapping(value = "/confirmBatch")
-    public Result<String> confirmBatch(@RequestBody String ids) {
-        List<String> idList = Arrays.asList(ids.split(","));
+    public Result<String> confirmBatch(@RequestBody PostDataDto dto) {
         LambdaUpdateWrapper<BusMeetingRoomScheduleDetail> updateWrapper = new LambdaUpdateWrapper<>();
-        updateWrapper.in(idList != null && idList.size() > 0, BusMeetingRoomScheduleDetail::getId, idList);
+        updateWrapper.in(BusMeetingRoomScheduleDetail::getId, dto.getIds());
         updateWrapper.set(BusMeetingRoomScheduleDetail::getStatus, 1);
         meetingRoomScheduleDetailService.update(updateWrapper);
         return Result.OK("批量确认成功!");
@@ -132,15 +131,15 @@ public class BusMeetingRoomScheduleDetailController extends JeecgController<BusM
     /**
      *  确认
      *
-     * @param id
+     * @param dto
      * @return
      */
     @AutoLog(value = "bus_market_coupons_cash_info-确认")
     @ApiOperation(value="bus_market_coupons_cash_info-确认", notes="bus_market_coupons_cash_info-确认")
     @PostMapping(value = "/confirm")
-    public Result<String> confirm(@RequestBody String id) {
+    public Result<String> confirm(@RequestBody PostDataDto dto) {
         LambdaUpdateWrapper<BusMeetingRoomScheduleDetail> updateWrapper = new LambdaUpdateWrapper<>();
-        updateWrapper.eq(BusMeetingRoomScheduleDetail::getId, id);
+        updateWrapper.eq(BusMeetingRoomScheduleDetail::getId, dto.getId());
         updateWrapper.set(BusMeetingRoomScheduleDetail::getStatus, 1);
         meetingRoomScheduleDetailService.update(updateWrapper);
         return Result.OK("确认成功!");

+ 2 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/dto/PostDataDto.java

@@ -2,10 +2,11 @@ package org.jeecg.modules.business.dto;
 
 import lombok.Data;
 
+import java.util.List;
 
 
 @Data
 public class PostDataDto {
     private String id;
-
+    private List<String> ids;
 }

+ 40 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMeetingRoomSchedule.java

@@ -1,9 +1,13 @@
 package org.jeecg.modules.business.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
+
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.List;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
@@ -79,6 +83,26 @@ public class BusMeetingRoomSchedule extends Model<BusMeetingRoomSchedule> {
     @DateTimeFormat(pattern="yyyy-MM-dd")
     private LocalDateTime createTime;
 
+    /**
+     * 支付类型 1 挂房账 2直接自付
+     */
+    private Integer payType;
+    /**
+     * 金额
+     */
+    private BigDecimal amount;
+    /**
+     * 入账到房间单号id
+     */
+    private String settleRoomOrderNo;
+    /**
+     * 创建人
+     */
+    private String createId;
+    /**
+     * 订单号
+     */
+    private String orderNo;
 
     public static final String ID = "id";
 
@@ -100,9 +124,25 @@ public class BusMeetingRoomSchedule extends Model<BusMeetingRoomSchedule> {
 
     public static final String CREATE_TIME = "create_time";
 
+    public static final String PAY_TYPE = "pay_type";
+    public static final String AMOUNT = "amount";
+    public static final String SETTLE_ROOM_ORDER_NO = "settle_room_order_no";
+    public static final String CREATE_ID = "create_id";
+    public static final String ORDER_NO = "order_no";
+
     @Override
     public Serializable pkVal() {
         return this.id;
     }
 
+
+    @TableField(exist = false)
+    private List<BusMeetingRoomScheduleOrderDetail> orderDetailList;
+    @TableField(exist = false)
+    private Integer confirmStatus;
+
+    @TableField(exist = false)
+    private List<BusRoomPayType> paymentMethodList;
+    @TableField(exist = false)
+    private BigDecimal preferentialAmount;
 }

+ 72 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMeetingRoomScheduleOrderDetail.java

@@ -0,0 +1,72 @@
+package org.jeecg.modules.business.entity;
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: bus_meeting_room_schedule_order_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-03-16
+ * @Version: V1.0
+ */
+@Data
+@TableName("bus_meeting_room_schedule_order_detail")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="bus_meeting_room_schedule_order_detail对象", description="bus_meeting_room_schedule_order_detail")
+public class BusMeetingRoomScheduleOrderDetail implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 关联租户
+     */
+    @Excel(name = "关联租户", width = 15)
+    @ApiModelProperty(value = "关联租户")
+    private String tenantId;
+    /**
+     * 关联酒店
+     */
+    @Excel(name = "关联酒店", width = 15)
+    @ApiModelProperty(value = "关联酒店")
+    private String hotelId;
+    /**
+     * 预定id
+     */
+    @Excel(name = "预定id", width = 15)
+    @ApiModelProperty(value = "预定id")
+    private String meetingRoomScheduleId;
+    /**
+     * 支付方式
+     */
+    @Excel(name = "支付方式", width = 15)
+    @ApiModelProperty(value = "支付方式")
+    private String payWay;
+    /**
+     * 金额
+     */
+    @Excel(name = "金额", width = 15)
+    @ApiModelProperty(value = "金额")
+    private BigDecimal amount;
+
+    @TableField(exist = false)
+    private String payWayName;
+}

+ 5 - 4
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusRoomPayType.java

@@ -4,10 +4,8 @@ import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
 import java.math.BigDecimal;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.TableLogic;
+
+import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -89,4 +87,7 @@ public class BusRoomPayType implements Serializable {
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @ApiModelProperty(value = "更新时间")
     private Date updateTime;
+
+    @TableField(exist = false)
+    private BigDecimal amount;
 }

+ 17 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusMeetingRoomScheduleOrderDetailMapper.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.business.mapper;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.business.entity.BusMeetingRoomScheduleOrderDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: bus_meeting_room_schedule_order_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-03-16
+ * @Version: V1.0
+ */
+public interface BusMeetingRoomScheduleOrderDetailMapper extends BaseMapper<BusMeetingRoomScheduleOrderDetail> {
+
+}

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusMeetingRoomScheduleOrderDetailMapper.xml

@@ -0,0 +1,5 @@
+<?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="org.jeecg.modules.demo.business.mapper.BusMeetingRoomScheduleOrderDetailMapper">
+
+</mapper>

+ 14 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusMeetingRoomScheduleOrderDetailService.java

@@ -0,0 +1,14 @@
+package org.jeecg.modules.business.service;
+
+import org.jeecg.modules.business.entity.BusMeetingRoomScheduleOrderDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: bus_meeting_room_schedule_order_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-03-16
+ * @Version: V1.0
+ */
+public interface IBusMeetingRoomScheduleOrderDetailService extends IService<BusMeetingRoomScheduleOrderDetail> {
+
+}

+ 19 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMeetingRoomScheduleOrderDetailServiceImpl.java

@@ -0,0 +1,19 @@
+package org.jeecg.modules.business.service.impl;
+
+import org.jeecg.modules.business.entity.BusMeetingRoomScheduleOrderDetail;
+import org.jeecg.modules.business.mapper.BusMeetingRoomScheduleOrderDetailMapper;
+import org.jeecg.modules.business.service.IBusMeetingRoomScheduleOrderDetailService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: bus_meeting_room_schedule_order_detail
+ * @Author: jeecg-boot
+ * @Date:   2023-03-16
+ * @Version: V1.0
+ */
+@Service
+public class BusMeetingRoomScheduleOrderDetailServiceImpl extends ServiceImpl<BusMeetingRoomScheduleOrderDetailMapper, BusMeetingRoomScheduleOrderDetail> implements IBusMeetingRoomScheduleOrderDetailService {
+
+}

+ 55 - 4
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusMeetingRoomScheduleServiceImpl.java

@@ -2,15 +2,15 @@ package org.jeecg.modules.business.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.apache.commons.collections.map.HashedMap;
+import org.apache.commons.lang3.ObjectUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.util.TokenUtils;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDetailDto;
 import org.jeecg.modules.business.dto.BusMeetingRoomScheduleDto;
-import org.jeecg.modules.business.entity.BusMeetingRoom;
-import org.jeecg.modules.business.entity.BusMeetingRoomSchedule;
-import org.jeecg.modules.business.entity.BusMeetingRoomScheduleDetail;
+import org.jeecg.modules.business.entity.*;
 import org.jeecg.modules.business.enums.CouponsKeyEnum;
 import org.jeecg.modules.business.mapper.BusMeetingRoomScheduleDetailMapper;
 import org.jeecg.modules.business.mapper.BusMeetingRoomScheduleMapper;
@@ -23,6 +23,8 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import javax.transaction.Transactional;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
@@ -31,6 +33,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
 /**
@@ -51,7 +54,8 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
 
         @Resource
         private BusMeetingRoomServiceImpl busMeetingRoomService;
-
+    @Resource
+    private BusMeetingRoomScheduleOrderDetailServiceImpl busMeetingRoomScheduleOrderDetailService;
 
     /**
      *
@@ -69,6 +73,11 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
         BeanUtil.copyProperties(dto,roomSchedule);
         roomSchedule.setTenantId(tenantId);
         roomSchedule.setCreateTime(LocalDateTime.now());
+        roomSchedule.setCreateId(TokenUtils.getAuthUser().getId());
+        roomSchedule.setPayType(1);
+        roomSchedule.setAmount(new BigDecimal(0));
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        roomSchedule.setOrderNo("HY"+sdf.format(System.currentTimeMillis()));
         meetingRoomScheduleMapper.insert(roomSchedule);
 
         List<BusMeetingRoomScheduleDetailDto> detailList = dto.getDetailList();
@@ -175,4 +184,46 @@ public class BusMeetingRoomScheduleServiceImpl extends ServiceImpl<BusMeetingRoo
         });
         return Result.ok(vos);
     }
+
+    /**
+     * 结算
+     * @param busMeetingRoomSchedule
+     * @return
+     */
+    @org.springframework.transaction.annotation.Transactional(rollbackFor = Exception.class)
+    public Result settle(BusMeetingRoomSchedule busMeetingRoomSchedule) {
+        if (ObjectUtils.isEmpty(busMeetingRoomSchedule.getPaymentMethodList())) {
+            return Result.error("结算支付方式不能为空");
+        }
+        BigDecimal sum = busMeetingRoomSchedule.getAmount().subtract(busMeetingRoomSchedule.getPreferentialAmount());
+        if (sum.compareTo(BigDecimal.ZERO) < 0) {
+            return Result.error("优惠金额不能大于订单金额");
+        }
+        AtomicReference<BigDecimal> sumAmount = new AtomicReference<>(new BigDecimal(0));
+        busMeetingRoomSchedule.getPaymentMethodList().forEach(item -> {
+            sumAmount.set(sumAmount.get().add(item.getAmount()));
+        });
+        if (sumAmount.get().compareTo(sum) != 0) {
+            return Result.error("输入必须等于结账应收金额");
+        }
+        busMeetingRoomSchedule.setBillStatus(1);
+        meetingRoomScheduleMapper.updateById(busMeetingRoomSchedule);
+        LambdaQueryWrapper<BusMeetingRoomScheduleOrderDetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(BusMeetingRoomScheduleOrderDetail::getMeetingRoomScheduleId, busMeetingRoomSchedule.getId());
+        busMeetingRoomScheduleOrderDetailService.remove(lambdaQueryWrapper);
+        List<BusMeetingRoomScheduleOrderDetail> busMeetingRoomScheduleOrderDetailList = new ArrayList<>();
+        busMeetingRoomSchedule.getPaymentMethodList().forEach(item -> {
+            if (item.getAmount().compareTo(BigDecimal.ZERO) > 0) {
+                BusMeetingRoomScheduleOrderDetail busMeetingRoomScheduleOrderDetail = new BusMeetingRoomScheduleOrderDetail();
+                busMeetingRoomScheduleOrderDetail.setHotelId(busMeetingRoomSchedule.getHotelId());
+                busMeetingRoomScheduleOrderDetail.setTenantId(busMeetingRoomSchedule.getTenantId());
+                busMeetingRoomScheduleOrderDetail.setMeetingRoomScheduleId(busMeetingRoomSchedule.getId());
+                busMeetingRoomScheduleOrderDetail.setAmount(item.getAmount());
+                busMeetingRoomScheduleOrderDetail.setPayWay(item.getId());
+                busMeetingRoomScheduleOrderDetailList.add(busMeetingRoomScheduleOrderDetail);
+            }
+        });
+        busMeetingRoomScheduleOrderDetailService.saveBatch(busMeetingRoomScheduleOrderDetailList);
+        return Result.ok("结算成功!");
+    }
 }