浏览代码

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

覃浩 2 年之前
父节点
当前提交
76f2252596

+ 1 - 1
jeecg-boot-base-core/src/main/java/org/jeecg/common/system/base/controller/JeecgController.java

@@ -42,7 +42,7 @@ public class JeecgController<T, S extends IService<T>> {
     protected S service;
 
     @Value("${jeecg.path.upload}")
-    private String upLoadPath;
+    protected String upLoadPath;
     /**
      * 导出excel
      *

+ 365 - 11
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusHotelController.java

@@ -1,10 +1,13 @@
 package org.jeecg.modules.business.controller;
 
+import java.math.BigDecimal;
+import java.text.ParseException;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -25,11 +28,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
 import org.jeecg.modules.base.service.BaseCommonService;
-import org.jeecg.modules.business.entity.BusDict;
-import org.jeecg.modules.business.entity.BusHotel;
-import org.jeecg.modules.business.service.IBusDictService;
-import org.jeecg.modules.business.service.IBusHotelService;
+import org.jeecg.modules.business.entity.*;
+import org.jeecg.modules.business.service.*;
+import org.jeecg.modules.business.service.impl.BusCancelServiceImpl;
 import org.jeecg.modules.business.util.MapUtil;
+import org.jeecg.modules.rooms.DTO.CesAllDayPriceRuleDto;
+import org.jeecg.modules.rooms.service.CesAllDayPriceRuleServiceImpl;
 import org.jeecg.modules.system.entity.SysTenant;
 import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.service.ISysTenantService;
@@ -69,6 +73,42 @@ public class BusHotelController extends JeecgController<BusHotel, IBusHotelServi
 
 	 @Autowired
 	 private IBusDictService busDictService;
+	 @Autowired
+	 private IBusPrintTemplateService busPrintTemplateService;
+	 @Autowired
+	 private IBusNightTrialService busNightTrialService;
+	 @Autowired
+	 private IBusClearService busClearService;
+	 @Autowired
+	 private IBusHouseSettingService busHouseSettingService;
+	 @Autowired
+	 private IBusDepositSettingService busDepositSettingService;
+	 @Autowired
+	 private IBusCancelService busCancelService;
+	 @Autowired
+	 private IBusOtherRoomCardService busOtherRoomCardService;
+	 @Autowired
+	 private IBusOtherMemberVerifyService busOtherMemberVerifyService;
+	 @Autowired
+	 private IBusOtherEmptyDirtyRoomService busOtherEmptyDirtyRoomService;
+	 @Autowired
+	 private IBusOtherCheckoutService busOtherCheckoutService;
+	 @Autowired
+	 private IBusParamWeepService busParamWeepService;
+	 @Autowired
+	 private IBusParamShareService busParamShareService;
+	 @Autowired
+	 private IBusParamPresetService busParamPresetService;
+	 @Autowired
+	 private IBusParamComputeFormulaService busParamComputeFormulaService;
+	 @Autowired
+	 private IBusParamPrintHideService busParamPrintHideService;
+	 @Autowired
+	 private IBusParamPresetSyncService busParamPresetSyncService;
+	 @Autowired
+	 private IBusParamXcxRoomService busParamXcxRoomService;
+	 @Resource
+	 CesAllDayPriceRuleServiceImpl cesAllDayPriceRuleService;
 
 	/**
 	 * 分页列表查询
@@ -141,20 +181,334 @@ public class BusHotelController extends JeecgController<BusHotel, IBusHotelServi
 //			for (BusDict busDict : listDict) {
 //
 //			}
-			List<BusDict> batchDict = new ArrayList<>();
-			listDict.forEach( busDict -> {
-				BusDict newDict = busDict;
-				newDict.setTenantId(busHotel.getTenantId());
-				newDict.setHotelId(busHotel.getId());
-				batchDict.add(newDict);
+			List<BusDict> batchModels = new ArrayList<>();
+			listDict.forEach( item -> {
+				BusDict newModel = new BusDict();
+				newModel.setParentId("0");
+				newModel.setTenantId(busHotel.getTenantId());
+				newModel.setHotelId(busHotel.getId());
+				newModel.setDictName(item.getDictName());
+				newModel.setDictCode(item.getDictCode());
+				newModel.setDescription(item.getDescription());
+				newModel.setDelFlag(item.getDelFlag());
+				batchModels.add(newModel);
+//				busDictService.save(newDict);
 			});
-			busDictService.saveBatch(batchDict);
+			busDictService.saveBatch(batchModels);
 		}
 
 		//初始化打印模板
+		LambdaQueryWrapper<BusPrintTemplate> queryPrintTemplate = new LambdaQueryWrapper<BusPrintTemplate>();
+		queryPrintTemplate.eq(BusPrintTemplate::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryPrintTemplate.eq(BusPrintTemplate::getHotelId, "0");
+		queryPrintTemplate.eq(BusPrintTemplate::getTenantId, "0");
+		List<BusPrintTemplate> listPrintTemplate = busPrintTemplateService.list(queryPrintTemplate);
+		if (listPrintTemplate != null && listPrintTemplate.size() > 0){
+			List<BusPrintTemplate> batchModels = new ArrayList<>();
+			listPrintTemplate.forEach( item -> {
+				BusPrintTemplate newModel = new BusPrintTemplate();
+				newModel.setTenantId(busHotel.getTenantId());
+				newModel.setHotelId(busHotel.getId());
+				newModel.setName(item.getName());
+				newModel.setType(item.getType());
+				newModel.setSpecs(item.getSpecs());
+				newModel.setRemarks(item.getRemarks());
+				newModel.setDefaultPrint(item.getDefaultPrint());
+				newModel.setPrintType(item.getPrintType());
+				newModel.setPrintSum(item.getPrintSum());
+				newModel.setPreview(item.getPreview());
+				newModel.setPrintContentOffset(item.getPrintContentOffset());
+				newModel.setPrintPaperOffset(item.getPrintPaperOffset());
+				newModel.setIsShowRefund(item.getIsShowRefund());
+				newModel.setIsShowIdcard(item.getIsShowIdcard());
+				newModel.setIsShowBreakfast(item.getIsShowBreakfast());
+				newModel.setIsShowAddress(item.getIsShowAddress());
+				newModel.setIsShowPhone(item.getIsShowPhone());
+				newModel.setDelFlag(item.getDelFlag());
+				batchModels.add(newModel);
+			});
+			busPrintTemplateService.saveBatch(batchModels);
+		}
 		//初始化参数设置
+		//夜审设置
+		LambdaQueryWrapper<BusNightTrial> queryNightTrial = new LambdaQueryWrapper<BusNightTrial>();
+		queryNightTrial.eq(BusNightTrial::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryNightTrial.eq(BusNightTrial::getHotelId, "0");
+		queryNightTrial.eq(BusNightTrial::getTenantId, "0");
+		BusNightTrial busNightTrial = busNightTrialService.getOne(queryNightTrial);
+		if (busNightTrial != null){
+			BusNightTrial newModel = new BusNightTrial();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setAutoCheck(busNightTrial.getAutoCheck());
+			newModel.setAutoHand(busNightTrial.getAutoHand());
+			newModel.setLastNightState(busNightTrial.getLastNightState());
+			newModel.setLastNightTrialTime(busNightTrial.getLastNightTrialTime());
+			newModel.setSetNightTrialTime(busNightTrial.getSetNightTrialTime());
+			newModel.setDelFlag(busNightTrial.getDelFlag());
+			busNightTrialService.save(newModel);
+		}
+
+		//清扫房间选择服务员
+		LambdaQueryWrapper<BusClear> queryClear = new LambdaQueryWrapper<BusClear>();
+		queryClear.eq(BusClear::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryClear.eq(BusClear::getHotelId, "0");
+		queryClear.eq(BusClear::getTenantId, "0");
+		BusClear busClear = busClearService.getOne(queryClear);
+		if (busClear != null){
+			BusClear newModel = new BusClear();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setStatus(busClear.getStatus());
+			newModel.setDelFlag(busClear.getDelFlag());
+			busClearService.save(newModel);
+		}
+
+		//房务管理
+		LambdaQueryWrapper<BusHouseSetting> queryHouseSetting= new LambdaQueryWrapper<BusHouseSetting>();
+		queryHouseSetting.eq(BusHouseSetting::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryHouseSetting.eq(BusHouseSetting::getHotelId, "0");
+		queryHouseSetting.eq(BusHouseSetting::getTenantId, "0");
+		BusHouseSetting busHouseSetting = busHouseSettingService.getOne(queryHouseSetting);
+		if (busHouseSetting != null){
+			BusHouseSetting newModel = new BusHouseSetting();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setDirtyHouse(busHouseSetting.getDirtyHouse());
+			newModel.setDirtyRoom(busHouseSetting.getDirtyRoom());
+			newModel.setTDirtyHouse(busHouseSetting.getTDirtyHouse());
+			newModel.setXDirtyHouse(busHouseSetting.getXDirtyHouse());
+			newModel.setZDirtyHouse(busHouseSetting.getZDirtyHouse());
+			newModel.setStatus(busHouseSetting.getStatus());
+			newModel.setDelFlag(busHouseSetting.getDelFlag());
+			busHouseSettingService.save(newModel);
+		}
 
+		//押金设置
+		LambdaQueryWrapper<BusDepositSetting> queryDepositSetting = new LambdaQueryWrapper<BusDepositSetting>();
+		queryDepositSetting.eq(BusDepositSetting::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryDepositSetting.eq(BusDepositSetting::getHotelId, "0");
+		queryDepositSetting.eq(BusDepositSetting::getTenantId, "0");
+		BusDepositSetting busDepositSetting = busDepositSettingService.getOne(queryDepositSetting);
+		if (busDepositSetting != null){
+			BusDepositSetting newModel = new BusDepositSetting();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setDepositType(busDepositSetting.getDepositType());
+			newModel.setDepositMoney(busDepositSetting.getDepositMoney());
+			newModel.setDepositMultiple(busDepositSetting.getDepositMultiple());
+			newModel.setBalanceAlarm(busDepositSetting.getBalanceAlarm());
+			newModel.setBalanceLess(busDepositSetting.getBalanceLess());
+			newModel.setIsRounding(busDepositSetting.getIsRounding());
+			newModel.setDelFlag(busDepositSetting.getDelFlag());
+			busDepositSettingService.save(newModel);
+		}
+		//撤销入住
+		LambdaQueryWrapper<BusCancel> queryCancel = new LambdaQueryWrapper<BusCancel>();
+		queryCancel.eq(BusCancel::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryCancel.eq(BusCancel::getHotelId, "0");
+		queryCancel.eq(BusCancel::getTenantId, "0");
+		BusCancel busCancel = busCancelService.getOne(queryCancel);
+		if (busCancel != null){
+			BusCancel newModel = new BusCancel();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setStatus(busCancel.getStatus());
+			newModel.setMinute(busCancel.getMinute());
+			newModel.setDelFlag(busCancel.getDelFlag());
+			busCancelService.save(newModel);
+		}
+
+		//其他
+		LambdaQueryWrapper<BusOtherRoomCard> queryOtherRoomCard = new LambdaQueryWrapper<BusOtherRoomCard>();
+		queryOtherRoomCard.eq(BusOtherRoomCard::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryOtherRoomCard.eq(BusOtherRoomCard::getHotelId, "0");
+		queryOtherRoomCard.eq(BusOtherRoomCard::getTenantId, "0");
+		BusOtherRoomCard busOtherRoomCard = busOtherRoomCardService.getOne(queryOtherRoomCard);
+		if (busOtherRoomCard != null){
+			BusOtherRoomCard newModel = new BusOtherRoomCard();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setStatus(busOtherRoomCard.getStatus());
+			newModel.setLogoutCard(busOtherRoomCard.getLogoutCard());
+			newModel.setTaxRate(busOtherRoomCard.getTaxRate());
+			newModel.setDelFlag(busOtherRoomCard.getDelFlag());
+			busOtherRoomCardService.save(newModel);
+		}
+
+		LambdaQueryWrapper<BusOtherMemberVerify> queryOtherMemberVerify = new LambdaQueryWrapper<BusOtherMemberVerify>();
+		queryOtherMemberVerify.eq(BusOtherMemberVerify::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryOtherMemberVerify.eq(BusOtherMemberVerify::getHotelId, "0");
+		queryOtherMemberVerify.eq(BusOtherMemberVerify::getTenantId, "0");
+		BusOtherMemberVerify busOtherMemberVerify = busOtherMemberVerifyService.getOne(queryOtherMemberVerify);
+		if (busOtherMemberVerify != null){
+			BusOtherMemberVerify newModel = new BusOtherMemberVerify();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setStatus(busOtherMemberVerify.getStatus());
+			newModel.setDelFlag(busOtherMemberVerify.getDelFlag());
+			busOtherMemberVerifyService.save(newModel);
+		}
+
+		LambdaQueryWrapper<BusOtherEmptyDirtyRoom> queryOtherEmptyDirtyRoom = new LambdaQueryWrapper<BusOtherEmptyDirtyRoom>();
+		queryOtherEmptyDirtyRoom.eq(BusOtherEmptyDirtyRoom::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryOtherEmptyDirtyRoom.eq(BusOtherEmptyDirtyRoom::getHotelId, "0");
+		queryOtherEmptyDirtyRoom.eq(BusOtherEmptyDirtyRoom::getTenantId, "0");
+		BusOtherEmptyDirtyRoom busOtherEmptyDirtyRoom = busOtherEmptyDirtyRoomService.getOne(queryOtherEmptyDirtyRoom);
+		if (busOtherEmptyDirtyRoom != null){
+			BusOtherEmptyDirtyRoom newModel = new BusOtherEmptyDirtyRoom();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setStatus(busOtherEmptyDirtyRoom.getStatus());
+			newModel.setDelFlag(busOtherEmptyDirtyRoom.getDelFlag());
+			busOtherEmptyDirtyRoomService.save(newModel);
+		}
+
+		LambdaQueryWrapper<BusOtherCheckout> queryOtherCheckout = new LambdaQueryWrapper<BusOtherCheckout>();
+		queryOtherCheckout.eq(BusOtherCheckout::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryOtherCheckout.eq(BusOtherCheckout::getHotelId, "0");
+		queryOtherCheckout.eq(BusOtherCheckout::getTenantId, "0");
+		BusOtherCheckout busOtherCheckout = busOtherCheckoutService.getOne(queryOtherCheckout);
+		if (busOtherCheckout != null){
+			BusOtherCheckout newModel = new BusOtherCheckout();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setStatus(busOtherCheckout.getStatus());
+			newModel.setDelFlag(busOtherCheckout.getDelFlag());
+			busOtherCheckoutService.save(newModel);
+		}
+
+		//扫码支付
+		LambdaQueryWrapper<BusParamWeep> queryParamWeep = new LambdaQueryWrapper<BusParamWeep>();
+		queryParamWeep.eq(BusParamWeep::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryParamWeep.eq(BusParamWeep::getHotelId, "0");
+		queryParamWeep.eq(BusParamWeep::getTenantId, "0");
+		BusParamWeep busParamWeep = busParamWeepService.getOne(queryParamWeep);
+		if (busParamWeep != null){
+			BusParamWeep newModel = new BusParamWeep();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setDayNum(busParamWeep.getDayNum());
+			newModel.setDelFlag(busParamWeep.getDelFlag());
+			busParamWeepService.save(newModel);
+		}
+
+		//数据共享
+		LambdaQueryWrapper<BusParamShare> queryParamShare = new LambdaQueryWrapper<BusParamShare>();
+		queryParamShare.eq(BusParamShare::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryParamShare.eq(BusParamShare::getHotelId, "0");
+		queryParamShare.eq(BusParamShare::getTenantId, "0");
+		BusParamShare busParamShare = busParamShareService.getOne(queryParamShare);
+		if (busParamShare != null){
+			BusParamShare newModel = new BusParamShare();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setAgreementAccountShare(busParamShare.getAgreementAccountShare());
+			newModel.setAgreementShare(busParamShare.getAgreementShare());
+			newModel.setMemberAccountShare(busParamShare.getMemberAccountShare());
+			newModel.setMemberShare(busParamShare.getMemberShare());
+			newModel.setDelFlag(busParamShare.getDelFlag());
+			busParamShareService.save(newModel);
+		}
+
+		//预定参数
+		LambdaQueryWrapper<BusParamPreset> queryParamPreset = new LambdaQueryWrapper<BusParamPreset>();
+		queryParamPreset.eq(BusParamPreset::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryParamPreset.eq(BusParamPreset::getHotelId, "0");
+		queryParamPreset.eq(BusParamPreset::getTenantId, "0");
+		BusParamPreset busParamPreset = busParamPresetService.getOne(queryParamPreset);
+		if (busParamPreset != null){
+			BusParamPreset newModel = new BusParamPreset();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setStatus(busParamPreset.getStatus());
+			newModel.setMinute(busParamPreset.getMinute());
+			newModel.setDelFlag(busParamPreset.getDelFlag());
+			busParamPresetService.save(newModel);
+		}
+
+		//计算公式
+		LambdaQueryWrapper<BusParamComputeFormula> queryParamComputeFormula = new LambdaQueryWrapper<BusParamComputeFormula>();
+		queryParamComputeFormula.eq(BusParamComputeFormula::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryParamComputeFormula.eq(BusParamComputeFormula::getHotelId, "0");
+		queryParamComputeFormula.eq(BusParamComputeFormula::getTenantId, "0");
+		BusParamComputeFormula busParamComputeFormula = busParamComputeFormulaService.getOne(queryParamComputeFormula);
+		if (busParamComputeFormula != null){
+			BusParamComputeFormula newModel = new BusParamComputeFormula();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setCardinal(busParamComputeFormula.getCardinal());
+			newModel.setNights(busParamComputeFormula.getNights());
+			newModel.setStatus(busParamComputeFormula.getStatus());
+			newModel.setDelFlag(busParamComputeFormula.getDelFlag());
+			busParamComputeFormulaService.save(newModel);
+		}
+
+		//打印单据隐藏信息设置
+		LambdaQueryWrapper<BusParamPrintHide> queryParamPrintHide = new LambdaQueryWrapper<BusParamPrintHide>();
+		queryParamPrintHide.eq(BusParamPrintHide::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryParamPrintHide.eq(BusParamPrintHide::getHotelId, "0");
+		queryParamPrintHide.eq(BusParamPrintHide::getTenantId, "0");
+		BusParamPrintHide busParamPrintHide = busParamPrintHideService.getOne(queryParamPrintHide);
+		if (busParamPrintHide != null){
+			BusParamPrintHide newModel = new BusParamPrintHide();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setGuest(busParamPrintHide.getGuest());
+			newModel.setPrice(busParamPrintHide.getPrice());
+			newModel.setDelFlag(busParamPrintHide.getDelFlag());
+			busParamPrintHideService.save(newModel);
+		}
+
+		//线上预定房量是否同步
+		LambdaQueryWrapper<BusParamPresetSync> queryParamPresetSync = new LambdaQueryWrapper<BusParamPresetSync>();
+		queryParamPresetSync.eq(BusParamPresetSync::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryParamPresetSync.eq(BusParamPresetSync::getHotelId, "0");
+		queryParamPresetSync.eq(BusParamPresetSync::getTenantId, "0");
+		BusParamPresetSync busParamPresetSync = busParamPresetSyncService.getOne(queryParamPresetSync);
+		if (busParamPresetSync != null){
+			BusParamPresetSync newModel = new BusParamPresetSync();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setStatus(busParamPresetSync.getStatus());
+			newModel.setDelFlag(busParamPresetSync.getDelFlag());
+			busParamPresetSyncService.save(newModel);
+		}
+		//小程序客房服务设置
+		LambdaQueryWrapper<BusParamXcxRoom> queryParamXcxRoom = new LambdaQueryWrapper<BusParamXcxRoom>();
+		queryParamXcxRoom.eq(BusParamXcxRoom::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+		queryParamXcxRoom.eq(BusParamXcxRoom::getHotelId, "0");
+		queryParamXcxRoom.eq(BusParamXcxRoom::getTenantId, "0");
+		BusParamXcxRoom busParamXcxRoom = busParamXcxRoomService.getOne(queryParamXcxRoom);
+		if (busParamXcxRoom != null){
+			BusParamXcxRoom newModel = new BusParamXcxRoom();
+			newModel.setTenantId(busHotel.getTenantId());
+			newModel.setHotelId(busHotel.getId());
+			newModel.setCheckOut(busParamXcxRoom.getCheckOut());
+			newModel.setCheckOutType(busParamXcxRoom.getCheckOutType());
+			newModel.setKeepLive(busParamXcxRoom.getKeepLive());
+			newModel.setMessageLive(busParamXcxRoom.getMessageLive());
+			newModel.setServiceLive(busParamXcxRoom.getServiceLive());
+			newModel.setRepairLive(busParamXcxRoom.getRepairLive());
+			newModel.setDelFlag(busParamXcxRoom.getDelFlag());
+			busParamXcxRoomService.save(newModel);
+		}
 
+		//全天房计费规则
+		CesAllDayPriceRuleDto cesAllDayPriceRuleDto = new CesAllDayPriceRuleDto();
+		cesAllDayPriceRuleDto.setHotelId(busHotel.getId());
+		cesAllDayPriceRuleDto.setEnterTime("6:00");
+		cesAllDayPriceRuleDto.setLeaveTime("14:00");
+		cesAllDayPriceRuleDto.setTimeOutRule(1);
+		cesAllDayPriceRuleDto.setRuleType(1);
+		cesAllDayPriceRuleDto.setMinute(30);
+		cesAllDayPriceRuleDto.setPrice(BigDecimal.valueOf(10));
+		cesAllDayPriceRuleDto.setMoreThenMinute(10);
+		cesAllDayPriceRuleDto.setMoreThenPrice(BigDecimal.valueOf(5));
+		cesAllDayPriceRuleDto.setEndTime("18:00");
+		cesAllDayPriceRuleDto.setDayTime("30");
+		cesAllDayPriceRuleDto.setInvalid(false);
+		cesAllDayPriceRuleService.modifyWholeDayUnifyPrice(cesAllDayPriceRuleDto);
 		return Result.OK("添加成功!");
 	}
 

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

@@ -1,21 +1,32 @@
 package org.jeecg.modules.business.controller;
 
+import java.io.IOException;
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import com.alibaba.druid.support.json.JSONUtils;
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.formula.functions.T;
+import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.TokenUtils;
+import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.business.dto.UserGroupDto;
 import org.jeecg.modules.business.dto.UserLabelDto;
 import org.jeecg.modules.business.entity.*;
@@ -28,8 +39,17 @@ import lombok.extern.slf4j.Slf4j;
 import org.jeecg.modules.business.vo.MemberCardStatVo;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.jeecg.modules.mall.entity.MallUserInfo;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.service.ISysUserService;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -58,6 +78,8 @@ public class BusMemberCardController extends JeecgController<BusMemberCard, IBus
 	 private IBusMarketMemberLableService busMarketMemberLableService;
 	 @Resource
 	 private IService<MallUserInfo> mallUserInfoIService;
+	 @Resource
+	 private ISysUserService sysUserService;
 	/**
 	 * 分页列表查询
 	 *
@@ -282,9 +304,50 @@ public class BusMemberCardController extends JeecgController<BusMemberCard, IBus
     //@RequiresPermissions("business:bus_member_card:exportXls")
     @RequestMapping(value = "/exportXls")
     public ModelAndView exportXls(HttpServletRequest request, BusMemberCard busMemberCard) {
-        return super.exportXls(request, busMemberCard, BusMemberCard.class, "bus_member_card");
+        return exportXls2(request, busMemberCard, BusMemberCard.class, "会员列表");
     }
 
+	private ModelAndView exportXls2(HttpServletRequest request, BusMemberCard object, Class<BusMemberCard> clazz, String title) {
+		// Step.1 组装查询条件
+		QueryWrapper<BusMemberCard> queryWrapper = QueryGenerator.initQueryWrapper(object, request.getParameterMap());
+		LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+		// 过滤选中数据
+		String selections = request.getParameter("selections");
+		if (oConvertUtils.isNotEmpty(selections)) {
+			List<String> selectionList = Arrays.asList(selections.split(","));
+			queryWrapper.in("id", selectionList);
+		}
+		// Step.2 获取导出数据
+		List<BusMemberCard> exportList = service.list(queryWrapper);
+		exportList.forEach(t -> {
+			BusHotel busHotel = busHotelService.getById(t.getHotelId());
+			if (busHotel != null) {
+				t.setHotelId(busHotel.getName());
+			}
+			BusMarketMember busMarketMember = busMarketMemberService.getById(t.getGradeId());
+			if (busMarketMember != null) {
+				t.setGradeId(busMarketMember.getName());
+			}
+			SysUser sysUser1=sysUserService.getById(t.getStaffId());
+			if(sysUser1!=null) {
+				t.setStaffId(sysUser1.getRealname());
+			}
+		});
+		// Step.3 AutoPoi 导出Excel
+		ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+		//此处设置的filename无效 ,前端会重更新设置一下
+		mv.addObject(NormalExcelConstants.FILE_NAME, title);
+		mv.addObject(NormalExcelConstants.CLASS, clazz);
+		//update-begin--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
+		ExportParams exportParams = new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title);
+		exportParams.setImageBasePath(this.upLoadPath);
+		//update-end--Author:liusq  Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
+		mv.addObject(NormalExcelConstants.PARAMS, exportParams);
+		mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
+		return mv;
+	}
+
     /**
       * 通过excel导入数据
     *
@@ -294,8 +357,82 @@ public class BusMemberCardController extends JeecgController<BusMemberCard, IBus
     */
     //@RequiresPermissions("business:bus_member_card:importExcel")
     @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        return super.importExcel(request, response, BusMemberCard.class);
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response,@RequestParam(name="hotelId",required=true) String hotelId) {
+        return importExcel2(request, response, BusMemberCard.class,hotelId);
     }
 
+
+	private Result<?> importExcel2(HttpServletRequest request, HttpServletResponse response, Class<BusMemberCard> clazz,String hotelId) {
+		LoginUser user = TokenUtils.getAuthUser();
+		if (user.getRelTenantIds() != null && !user.getRelTenantIds().equals("")) {
+		} else {
+			throw new JeecgBootException("当前登录人租户信息错误");
+		}
+		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+		Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+		for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+			// 获取上传文件对象
+			MultipartFile file = entity.getValue();
+			ImportParams params = new ImportParams();
+			params.setTitleRows(2);
+			params.setHeadRows(1);
+			params.setNeedSave(true);
+			try {
+				List<BusMemberCard> list = ExcelImportUtil.importExcel(file.getInputStream(), clazz, params);
+//				log.info(JSON.toJSONString(list));
+				//update-begin-author:taoyan date:20190528 for:批量插入数据
+				long start = System.currentTimeMillis();
+
+				List<BusMemberCard> addList = new ArrayList<>();
+				list.forEach(t -> {
+					if (StringUtils.isNotBlank(t.getGradeId())) {
+						LambdaQueryWrapper<BusMemberCard> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
+						lambdaQueryWrapper2.eq(BusMemberCard::getHotelId, hotelId);
+						lambdaQueryWrapper2.and(o -> {
+							o.or().eq(BusMemberCard::getCardNo, t.getCardNo());
+							o.or().eq(BusMemberCard::getMobile, t.getMobile());
+							o.or().eq(BusMemberCard::getCertificateNo, t.getCertificateNo());
+						});
+						Long count = busMemberCardService.count(lambdaQueryWrapper2);
+						if (count == 0) {
+							LambdaQueryWrapper<BusMarketMember> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+							lambdaQueryWrapper.eq(BusMarketMember::getHotelId, hotelId);
+							lambdaQueryWrapper.eq(BusMarketMember::getName, t.getGradeId());
+							List<BusMarketMember> busMarketMembers = busMarketMemberService.list(lambdaQueryWrapper);
+							if (ObjectUtils.isNotEmpty(busMarketMembers)) {
+								t.setGradeId(busMarketMembers.get(0).getId());
+							}
+							t.setCreateTime(DateTime.now());
+							t.setHotelId(hotelId);
+							t.setTenantId(user.getRelTenantIds());
+							addList.add(t);
+						}
+					}
+				});
+				service.saveBatch(addList);
+				//400条 saveBatch消耗时间1592毫秒  循环插入消耗时间1947毫秒
+				//1200条  saveBatch消耗时间3687毫秒 循环插入消耗时间5212毫秒
+				log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
+				//update-end-author:taoyan date:20190528 for:批量插入数据
+				return Result.ok("文件导入成功!数据行数:" + addList.size());
+			} catch (Exception e) {
+				//update-begin-author:taoyan date:20211124 for: 导入数据重复增加提示
+				String msg = e.getMessage();
+				log.error(msg, e);
+				if (msg != null && msg.indexOf("Duplicate entry") >= 0) {
+					return Result.error("文件导入失败:有重复数据!");
+				} else {
+					return Result.error("文件导入失败:" + e.getMessage());
+				}
+				//update-end-author:taoyan date:20211124 for: 导入数据重复增加提示
+			} finally {
+				try {
+					file.getInputStream().close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		return Result.error("文件导入失败!");
+	}
 }

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusRoomBookingOrdersController.java

@@ -305,7 +305,7 @@ public class BusRoomBookingOrdersController extends JeecgController<BusRoomBooki
 	  */
 	 @ApiOperation(value="酒店预定订单-续住/提前", notes="酒店预定订单-续住/提前")
 	 @RequestMapping(value = "/continue-living",method = RequestMethod.POST)
-	 public Result<Boolean> continueLiving(@RequestBody BusOrderFee fees, Date dueOutTime,String livingOrderId , String hotelId) {
+	 public Result<Boolean> continueLiving(@RequestBody BusOrderFee fees,@RequestParam(name = "dueOutTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm")  @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") Date dueOutTime,String livingOrderId , String hotelId) {
 		 Boolean isOk = service.continueLiving(fees,dueOutTime,livingOrderId,hotelId);
 		 return Result.OK(isOk);
 	 }

+ 18 - 17
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusMemberCard.java

@@ -32,14 +32,15 @@ public class BusMemberCard implements Serializable {
 
 	/**主键*/
 	@TableId(type = IdType.ASSIGN_ID)
+    @Excel(name = "用户id", width = 15)
     @ApiModelProperty(value = "主键")
     private String id;
 	/**关联租户*/
-	@Excel(name = "关联租户", width = 15)
+//	@Excel(name = "关联租户", width = 15)
     @ApiModelProperty(value = "关联租户")
     private String tenantId;
 	/**关联酒店*/
-	@Excel(name = "关联酒店", width = 15)
+	@Excel(name = "商家", width = 15)
     @ApiModelProperty(value = "关联酒店")
     private String hotelId;
 	/**手机号*/
@@ -51,23 +52,23 @@ public class BusMemberCard implements Serializable {
     @ApiModelProperty(value = "会员卡号")
     private String cardNo;
 	/**卡内码*/
-	@Excel(name = "卡内码", width = 15)
+//	@Excel(name = "卡内码", width = 15)
     @ApiModelProperty(value = "卡内码")
     private String cardInnerNo;
 	/**等级类型*/
-	@Excel(name = "等级类型", width = 15)
+	@Excel(name = "会员类型", width = 15)
     @ApiModelProperty(value = "等级类型")
     private String gradeId;
 	/**会员费*/
-	@Excel(name = "会员费", width = 15)
+//	@Excel(name = "会员费", width = 15)
     @ApiModelProperty(value = "会员费")
     private BigDecimal memberFee;
 	/**付款类型*/
-	@Excel(name = "付款类型", width = 15)
+//	@Excel(name = "付款类型", width = 15)
     @ApiModelProperty(value = "付款类型")
     private Integer payType;
 	/**付款方式*/
-	@Excel(name = "付款方式", width = 15)
+//	@Excel(name = "付款方式", width = 15)
     @ApiModelProperty(value = "付款方式")
     private String paymentMethod;
 	/**会员姓名*/
@@ -75,7 +76,7 @@ public class BusMemberCard implements Serializable {
     @ApiModelProperty(value = "会员姓名")
     private String name;
 	/**头像*/
-	@Excel(name = "头像", width = 15)
+//	@Excel(name = "头像", width = 15)
     @ApiModelProperty(value = "头像")
     private String avatar;
 	/**性别*/
@@ -83,7 +84,7 @@ public class BusMemberCard implements Serializable {
     @ApiModelProperty(value = "性别")
     private Integer sex;
 	/**证件类型*/
-	@Excel(name = "证件类型", width = 15)
+//	@Excel(name = "证件类型", width = 15)
     @ApiModelProperty(value = "证件类型")
     private Integer certificateType;
 	/**证件号*/
@@ -91,25 +92,25 @@ public class BusMemberCard implements Serializable {
     @ApiModelProperty(value = "证件号")
     private String certificateNo;
 	/**地址*/
-	@Excel(name = "地址", width = 15)
+//	@Excel(name = "地址", width = 15)
     @ApiModelProperty(value = "地址")
     private String address;
 	/**消费密码*/
-	@Excel(name = "消费密码", width = 15)
+//	@Excel(name = "消费密码", width = 15)
     @ApiModelProperty(value = "消费密码")
     private String consumePassword;
 	/**有效期*/
-	@Excel(name = "有效期", width = 15)
+//	@Excel(name = "有效期", width = 15)
     @ApiModelProperty(value = "有效期")
     private Integer validity;
 	/**有效期截止日期*/
-	@Excel(name = "有效期截止日期", width = 15, format = "yyyy-MM-dd")
+//	@Excel(name = "有效期截止日期", width = 15, format = "yyyy-MM-dd")
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @ApiModelProperty(value = "有效期截止日期")
     private Date validityEndTime;
 	/**备注*/
-	@Excel(name = "备注", width = 15)
+//	@Excel(name = "备注", width = 15)
     @ApiModelProperty(value = "备注")
     private String remark;
 	/**推荐员工*/
@@ -130,15 +131,15 @@ public class BusMemberCard implements Serializable {
     @ApiModelProperty(value = "创建时间")
     private Date createTime;
     /**分组id*/
-    @Excel(name = "分组id", width = 15)
+    @Excel(name = "分组", width = 15)
     @ApiModelProperty(value = "分组id")
     private String groupId;
     /**标签id*/
-    @Excel(name = "标签id", width = 15)
+    @Excel(name = "标签", width = 15)
     @ApiModelProperty(value = "标签id")
     private String labelId;
     /**商城用户id*/
-    @Excel(name = "商城用户id", width = 15)
+//    @Excel(name = "商城用户id", width = 15)
     @ApiModelProperty(value = "商城用户id")
     private String userId;
 

+ 65 - 39
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/BusOrderFee.java

@@ -4,10 +4,9 @@ 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 java.util.List;
+
+import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -32,67 +31,93 @@ import lombok.experimental.Accessors;
 public class BusOrderFee implements Serializable {
     private static final long serialVersionUID = 1L;
 
-	/**key*/
-	@TableId(type = IdType.ASSIGN_ID)
+    /**
+     * key
+     */
+    @TableId(type = IdType.ASSIGN_ID)
     @ApiModelProperty(value = "key")
     private String id;
-	/**入住订单id*/
-	@Excel(name = "入住订单id", width = 15)
+    /**
+     * 入住订单id
+     */
+    @Excel(name = "入住订单id", width = 15)
     @ApiModelProperty(value = "入住订单id")
     private String livingOrderId;
-	/**房间id*/
-	@Excel(name = "房间id", width = 15)
+    /**
+     * 房间id
+     */
+    @Excel(name = "房间id", width = 15)
     @ApiModelProperty(value = "房间id")
     private String roomId;
-	/**消费金额*/
-	@Excel(name = "消费金额", width = 15)
+    /**
+     * 消费金额
+     */
+    @Excel(name = "消费金额", width = 15)
     @ApiModelProperty(value = "消费金额")
     private BigDecimal money;
-	/**账单类型1消费。2收款*/
-	@Excel(name = "账单类型1消费。2收款", width = 15)
+    /**
+     * 账单类型1消费。2收款
+     */
+    @Excel(name = "账单类型1消费。2收款", width = 15)
     @ApiModelProperty(value = "账单类型1消费。2收款")
     private Integer feeType;
-	/**收费项目说明*/
-	@Excel(name = "收费项目说明", width = 15)
+    /**
+     * 收费项目说明
+     */
+    @Excel(name = "收费项目说明", width = 15)
     @ApiModelProperty(value = "收费项目说明")
     private Integer subjectType;
-	/**付款方式*/
-	@Excel(name = "付款方式", width = 15)
+    /**
+     * 付款方式
+     */
+    @Excel(name = "付款方式", width = 15)
     @ApiModelProperty(value = "付款方式")
     private String payType;
-	/**备注*/
-	@Excel(name = "备注", width = 15)
+    /**
+     * 备注
+     */
+    @Excel(name = "备注", width = 15)
     @ApiModelProperty(value = "备注")
     private String remark;
-	/**客单备注*/
-	@Excel(name = "客单备注", width = 15)
+    /**
+     * 客单备注
+     */
+    @Excel(name = "客单备注", width = 15)
     @ApiModelProperty(value = "客单备注")
     private String custorerOrderRemark;
-	/**创建时间*/
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
+    /**
+     * 创建时间
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     @ApiModelProperty(value = "创建时间")
     private Date createTime;
-	/**营业日*/
-	@Excel(name = "营业日", width = 15, format = "yyyy-MM-dd")
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
+    /**
+     * 营业日
+     */
+    @Excel(name = "营业日", width = 15, format = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     @ApiModelProperty(value = "营业日")
     private Date dayTime;
-	/**收款账单有该记录,id为消费账单id*/
-	@Excel(name = "收款账单有该记录,id为消费账单id", width = 15)
+    /**
+     * 收款账单有该记录,id为消费账单id
+     */
+    @Excel(name = "收款账单有该记录,id为消费账单id", width = 15)
     @ApiModelProperty(value = "收款账单有该记录,id为消费账单id")
     private String consumeFeeId;
-	/**收款时间*/
-	@Excel(name = "收款时间", width = 15, format = "yyyy-MM-dd")
-	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
-    @DateTimeFormat(pattern="yyyy-MM-dd")
+    /**
+     * 收款时间
+     */
+    @Excel(name = "收款时间", width = 15, format = "yyyy-MM-dd")
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
     @ApiModelProperty(value = "收款时间")
     private Date payTime;
 
-	// 以下的内容只会出现在优惠的账单里面
+    // 以下的内容只会出现在优惠的账单里面
     @ApiModelProperty(value = "是否优惠")
-	private Boolean isPreferential;
+    private Boolean isPreferential;
     @ApiModelProperty(value = "优惠类型:1抹零2减现3打折  折扣率自动根据优惠金额计算")
     private Integer preferentialType;
     @ApiModelProperty(value = "优惠金额")
@@ -112,6 +137,7 @@ public class BusOrderFee implements Serializable {
     @ApiModelProperty(value = "协议单位ID")
     private String agreementUnitId;
 
-
-
+    @ApiModelProperty(value = "每天价格")
+    @TableField(exist = false)
+    private List<BusLivingLayoutDayPrice> prices;
 }

+ 16 - 6
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusRoomBookingOrdersServiceImpl.java

@@ -1244,15 +1244,16 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean continueLiving(BusOrderFee settleFee, Date dueOutTime,String livingOrderId,String hotelId) {
-
         BusRoomsLivingOrder order = roomsLivingOrderService.getById(livingOrderId);
-        if(order == null) throw new JeecgBootException("订单错误");
+        if (order == null) throw new JeecgBootException("订单错误");
         BusBookingRooms bkRoom = bookingRoomsService.getById(order.getBookingRoomId());
-        if(bkRoom == null) throw new JeecgBootException("订单房间不存在");
-        if(order.getArrivalTime().getTime() >= dueOutTime.getTime()) throw new JeecgBootException("预离时间不能小于预抵时间");
+        if (bkRoom == null) throw new JeecgBootException("订单房间不存在");
+        if (settleFee.getPrices() == null || settleFee.getPrices().size() == 0)
+            throw new JeecgBootException("每天价格不能为空");
+        if (order.getArrivalTime().getTime() >= dueOutTime.getTime()) throw new JeecgBootException("预离时间不能小于预抵时间");
         order.setDueOutTime(dueOutTime);
         roomsLivingOrderService.updateById(order);
-        if(settleFee != null && settleFee.getMoney() != null && !settleFee.getMoney().equals(new BigDecimal(0))) {
+        if (settleFee != null && settleFee.getMoney() != null && !settleFee.getMoney().equals(new BigDecimal(0))) {
             settleFee.setLivingOrderId(livingOrderId);
             settleFee.setFeeType(2);
             settleFee.setSubjectType(FeeSubjectType.YU_SHOU.getKey());
@@ -1260,10 +1261,19 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
             settleFee.setRoomId(bkRoom.getRoomId());
             settleFee.setPreferentialStatus(1); // 未结账
             feeService.save(settleFee);
-            return  true;
+            return true;
         }
+        CesRooms room =  roomsService.getById(bkRoom.getRoomId());
+        settleFee.getPrices().forEach(s -> {
+            s.setRoomLayoutId(room.getLayoutId());
+            s.setRoomId(bkRoom.getRoomId());
+            s.setLivingType(1);
+            s.setLivingOrderId(livingOrderId);
+        });
+        livingLayoutDayPriceService.saveBatch(settleFee.getPrices());
         throw new JeecgBootException("设置失败");
     }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean settleBillCheckOut(List<BusOrderFee> settleFees, String bookingOrderId) {

+ 32 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/controller/FwRoomExamineController.java

@@ -7,11 +7,16 @@ import java.util.stream.Collectors;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.business.entity.BusLivingCustomer;
+import org.jeecg.modules.business.entity.BusRoomsLivingOrder;
+import org.jeecg.modules.business.service.IBusLivingCustomerService;
+import org.jeecg.modules.business.service.IBusRoomsLivingOrderService;
 import org.jeecg.modules.fw.entity.FwRoomExamine;
 import org.jeecg.modules.fw.service.IFwRoomExamineService;
 
@@ -20,6 +25,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
+import org.jeecg.modules.rooms.Enum.RoomStatusEnum;
+import org.jeecg.modules.rooms.entity.CesRooms;
+import org.jeecg.modules.rooms.service.CesRoomsServiceImpl;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -50,6 +58,12 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
 public class FwRoomExamineController extends JeecgController<FwRoomExamine, IFwRoomExamineService> {
 	@Autowired
 	private IFwRoomExamineService fwRoomExamineService;
+	@Resource
+	private IBusRoomsLivingOrderService busRoomsLivingOrderService;
+	@Resource
+	private CesRoomsServiceImpl cesRoomsService;
+	@Resource
+	private IBusLivingCustomerService busLivingCustomerService;
 
 	/**
 	 * 分页列表查询
@@ -70,9 +84,27 @@ public class FwRoomExamineController extends JeecgController<FwRoomExamine, IFwR
 		QueryWrapper<FwRoomExamine> queryWrapper = QueryGenerator.initQueryWrapper(fwRoomExamine, req.getParameterMap());
 		Page<FwRoomExamine> page = new Page<FwRoomExamine>(pageNo, pageSize);
 		IPage<FwRoomExamine> pageList = fwRoomExamineService.page(page, queryWrapper);
+		pageList.getRecords().forEach(t -> {
+			CesRooms cesRooms = cesRoomsService.getById(t.getRoomId());
+			if (cesRooms != null) {
+				t.setRoomName(cesRooms.getName());
+				RoomStatusEnum roomStatusEnum = RoomStatusEnum.val(cesRooms.getRoomStatus());
+				if (roomStatusEnum != null) {
+					t.setRoomStatus(roomStatusEnum.getTitle());
+				}
+				BusRoomsLivingOrder busRoomsLivingOrder = busRoomsLivingOrderService.getById(t.getLivingOrderId());
+				if (busRoomsLivingOrder != null) {
+					BusLivingCustomer busLivingCustomer = busLivingCustomerService.getById(busRoomsLivingOrder.getContactId());
+					if (busLivingCustomer != null) {
+						t.setContactName(busLivingCustomer.getCustomerName());
+					}
+				}
+			}
+		});
 		return Result.OK(pageList);
 	}
 
+
 	/**
 	 *   添加
 	 *

+ 14 - 4
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/entity/FwRoomExamine.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;
@@ -93,4 +91,16 @@ public class FwRoomExamine implements Serializable {
 	@Excel(name = "查房发起人", width = 15)
     @ApiModelProperty(value = "查房发起人")
     private String promoterBy;
+
+    @ApiModelProperty(value = "房号")
+	@TableField(exist = false)
+    private String roomName;
+
+    @ApiModelProperty(value = "客人姓名")
+    @TableField(exist = false)
+    private String contactName;
+
+    @ApiModelProperty(value = "房间状态")
+    @TableField(exist = false)
+    private String roomStatus;
 }