| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package com.chuanghai.ihotel.service.impl;
- import com.chuanghai.ihotel.common.exception.BizCodeEnume;
- import com.chuanghai.ihotel.common.exception.RRException;
- import com.chuanghai.ihotel.component.WaterElectricComponent;
- import com.chuanghai.ihotel.entity.RoomThirdSettingEntity;
- import com.chuanghai.ihotel.entity.SystemSettingEntity;
- import com.chuanghai.ihotel.service.RoomThirdSettingService;
- import com.chuanghai.ihotel.service.SystemSettingService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.chuanghai.ihotel.common.utils.PageUtils;
- import com.chuanghai.ihotel.common.utils.MyQuery;
- import com.chuanghai.ihotel.common.utils.PageParam;
- import com.chuanghai.ihotel.dao.HotelOrderBillDao;
- import com.chuanghai.ihotel.entity.HotelOrderBillEntity;
- import com.chuanghai.ihotel.service.HotelOrderBillService;
- import org.springframework.util.StringUtils;
- import java.math.BigDecimal;
- @Service("hotelOrderBillService")
- public class HotelOrderBillServiceImpl extends ServiceImpl<HotelOrderBillDao, HotelOrderBillEntity> implements HotelOrderBillService {
- @Autowired
- private SystemSettingService systemSettingService;
- @Autowired
- private RoomThirdSettingService roomWaterElectricService;
- @Autowired
- private WaterElectricComponent waterElectricComponent;
- @Override
- public PageUtils queryPage(PageParam pageParam) {
- IPage<HotelOrderBillEntity> page = this.page(
- new MyQuery<HotelOrderBillEntity>().getPage(pageParam),
- new QueryWrapper<>()
- );
- return new PageUtils(page);
- }
- @Override
- public HotelOrderBillEntity findByOrderId(Long orderId) {
- QueryWrapper<HotelOrderBillEntity> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("hotel_order_id", orderId);
- queryWrapper.last("limit 1");
- return this.getOne(queryWrapper);
- }
- @Override
- public void generateBill(Long orderId, Long roomId) {
- // 系统设置
- SystemSettingEntity systemSetting = systemSettingService.get();
- // 水电抄表
- RoomThirdSettingEntity waterElectricEntity = roomWaterElectricService.findByRoomId(roomId);
- if (waterElectricEntity == null) {
- throw new RRException(BizCodeEnume.PERMISSION_DENIED, "房间水电表数据读取失败");
- }
- String electricData = waterElectricComponent.queryPowerRealTimeData(waterElectricEntity.getElectricId());
- if (!StringUtils.hasText(electricData)) {
- throw new RRException(BizCodeEnume.UNKNOW_EXCEPTION, "读取电表数据异常");
- }
- String waterData = waterElectricComponent.queryLastHistoryCumulantInfo(waterElectricEntity.getWaterId());
- if (!StringUtils.hasText(waterData)) {
- throw new RRException(BizCodeEnume.UNKNOW_EXCEPTION, "读取电表数据异常");
- }
- // 生成结账单
- HotelOrderBillEntity orderBill = new HotelOrderBillEntity();
- orderBill.setHotelOrderId(orderId);
- orderBill.setRoomId(roomId);
- orderBill.setPriceOfElectric(systemSetting.getPriceOfElectric().toString());
- orderBill.setPriceOfWater(systemSetting.getPriceOfWater().toString());
- orderBill.setStartOfElectric(electricData);
- orderBill.setStartOfWater(waterData);
- orderBill.setTotalFree(new BigDecimal("0"));
- orderBill.setDiscountFree(systemSetting.getFreeTotal());
- orderBill.setShouldFree(new BigDecimal("0"));
- orderBill.setRealFree(new BigDecimal("0"));
- orderBill.setStatu("1"); // 1待处理 初始值、2已完成
- this.save(orderBill);
- }
- }
|