gqx vor 2 Jahren
Ursprung
Commit
1c3c6a1bfd
25 geänderte Dateien mit 1122 neuen und 1 gelöschten Zeilen
  1. 5 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusRoomBookingOrdersServiceImpl.java
  2. 203 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/controller/FwRoomCleanController.java
  3. 229 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/controller/FwRoomLockController.java
  4. 230 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/controller/FwRoomRepairController.java
  5. 15 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/dto/RoomCleanDto.java
  6. 15 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/dto/RoomLockDto.java
  7. 25 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/dto/RoomRepairDto.java
  8. 67 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/entity/FwRoomClean.java
  9. 59 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/entity/FwRoomLock.java
  10. 75 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/entity/FwRoomRepair.java
  11. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/mapper/FwRoomCleanMapper.java
  12. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/mapper/FwRoomLockMapper.java
  13. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/mapper/FwRoomRepairMapper.java
  14. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/mapper/xml/FwRoomCleanMapper.xml
  15. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/mapper/xml/FwRoomLockMapper.xml
  16. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/mapper/xml/FwRoomRepairMapper.xml
  17. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/service/IFwRoomCleanService.java
  18. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/service/IFwRoomLockService.java
  19. 14 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/service/IFwRoomRepairService.java
  20. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/service/impl/FwRoomCleanServiceImpl.java
  21. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/service/impl/FwRoomLockServiceImpl.java
  22. 19 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/service/impl/FwRoomRepairServiceImpl.java
  23. 2 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/pos/controller/PosOrderGoodsController.java
  24. 29 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomsController.java
  25. 3 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesRooms.java

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

@@ -876,6 +876,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
         if(room==null) throw new JeecgBootException("房间不存在");
         room.setLivingOrderId(livingOrder.getId());
         room.setRoomStatus(RoomStatusEnum.LIVE_CLEAR.getKey());
+        room.setLastRoomStatus(RoomStatusEnum.LIVE_CLEAR.getKey());
         roomsService.updateById(room);
         bkRoom.setRoomStatus(RoomStatusEnum.LIVE_DIRTY.getKey());
         bookingRoomsService.updateById(bkRoom);
@@ -1079,6 +1080,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
                 if(baseRooms.size() > 0) {
                     baseRooms.forEach(s->{
                         s.setRoomStatus(RoomStatusEnum.EMPTY_DIRTY.getKey());
+                        s.setLastRoomStatus(RoomStatusEnum.EMPTY_DIRTY.getKey());
                         s.setLivingOrderId("");
                     });
                     roomsService.updateBatchById(baseRooms);
@@ -1120,6 +1122,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
         if(baseRooms.size() > 0) {
             baseRooms.forEach(s->{
                 s.setRoomStatus(RoomStatusEnum.EMPTY_DIRTY.getKey());
+                s.setLastRoomStatus(RoomStatusEnum.EMPTY_DIRTY.getKey());
                 s.setLivingOrderId("");
             });
             roomsService.updateBatchById(baseRooms);
@@ -1178,6 +1181,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
             rooms.forEach(s->{
                 s.setLivingOrderId("");
                 s.setRoomStatus(RoomStatusEnum.EMPTY_DIRTY.getKey());
+                s.setLastRoomStatus(RoomStatusEnum.EMPTY_DIRTY.getKey());
             });
             bookingLivings.forEach(s->s.setSettleType(SettleTypeEnum.SETTLE_LEAVE.getKey()));
             roomsLivingOrderService.updateBatchById(bookingLivings);
@@ -1192,7 +1196,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
             if(room == null) throw new JeecgBootException("未找到订单信息");
             room.setLivingOrderId("");
             room.setRoomStatus(RoomStatusEnum.EMPTY_DIRTY.getKey());
-
+            room.setLastRoomStatus(RoomStatusEnum.EMPTY_DIRTY.getKey());
             livingOrder.setSettleType(SettleTypeEnum.SETTLE_LEAVE.getKey());
             roomsLivingOrderService.updateById(livingOrder);
             roomsService.updateById(room);

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

@@ -0,0 +1,203 @@
+package org.jeecg.modules.fw.controller;
+
+import java.util.Arrays;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.ObjectUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.TokenUtils;
+import org.jeecg.modules.fw.dto.RoomCleanDto;
+import org.jeecg.modules.fw.dto.RoomLockDto;
+import org.jeecg.modules.fw.entity.FwRoomClean;
+import org.jeecg.modules.fw.entity.FwRoomLock;
+import org.jeecg.modules.fw.service.IFwRoomCleanService;
+
+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.rooms.Enum.RoomStatusEnum;
+import org.jeecg.modules.rooms.entity.CesRooms;
+import org.jeecg.modules.rooms.service.CesRoomsServiceImpl;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+/**
+ * @Description: fw_room_clean
+ * @Author: jeecg-boot
+ * @Date:   2023-04-17
+ * @Version: V1.0
+ */
+@Api(tags="fw_room_clean")
+@RestController
+@RequestMapping("/fw/fwRoomClean")
+@Slf4j
+public class FwRoomCleanController extends JeecgController<FwRoomClean, IFwRoomCleanService> {
+	@Autowired
+	private IFwRoomCleanService fwRoomCleanService;
+	 @Autowired
+	 private CesRoomsServiceImpl cesRoomsService;
+	/**
+	 * 分页列表查询
+	 *
+	 * @param fwRoomClean
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "fw_room_clean-分页列表查询")
+	@ApiOperation(value="fw_room_clean-分页列表查询", notes="fw_room_clean-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<FwRoomClean>> queryPageList(FwRoomClean fwRoomClean,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<FwRoomClean> queryWrapper = QueryGenerator.initQueryWrapper(fwRoomClean, req.getParameterMap());
+		Page<FwRoomClean> page = new Page<FwRoomClean>(pageNo, pageSize);
+		IPage<FwRoomClean> pageList = fwRoomCleanService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+
+	/**
+	 *   添加
+	 *
+	 * @param dto
+	 * @return
+	 */
+	@AutoLog(value = "fw_room_clean-添加")
+	@ApiOperation(value="fw_room_clean-添加", notes="fw_room_clean-添加")
+	//@RequiresPermissions("fw:fw_room_clean:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody RoomCleanDto dto) {
+		if (ObjectUtils.isEmpty(dto.getRoomCleanList())) {
+			return Result.error("请先选择房间");
+		}
+		for (FwRoomClean fwRoomClean : dto.getRoomCleanList()) {
+			CesRooms cesRooms = cesRoomsService.getById(fwRoomClean.getRoomId());
+			if (ObjectUtils.isEmpty(cesRooms)) {
+				return Result.error("房间不存在");
+			}
+			if (!cesRooms.getRoomStatus().equals(RoomStatusEnum.EMPTY_DIRTY.getKey()) && !cesRooms.getRoomStatus().equals(RoomStatusEnum.LIVE_DIRTY.getKey())) {
+				return Result.error("房间不是脏房状态不可以置干净");
+			}
+			fwRoomClean.setHotelId(dto.getHotelId());
+			fwRoomClean.setTenantId(TokenUtils.currentTenantId());
+			fwRoomClean.setRemark(dto.getRemark());
+			fwRoomClean.setWaiterId(dto.getWaiterId());
+		}
+		Boolean res = fwRoomCleanService.saveBatch(dto.getRoomCleanList());
+		if (res) {
+			for (FwRoomClean fwRoomClean : dto.getRoomCleanList()) {
+				CesRooms cesRooms = cesRoomsService.getById(fwRoomClean.getRoomId());
+				if (ObjectUtils.isNotEmpty(cesRooms)) {
+					if (cesRooms.getRoomStatus().equals(RoomStatusEnum.EMPTY_DIRTY.getKey())) {
+						cesRooms.setLastRoomStatus(RoomStatusEnum.EMPTY_CLEAR.getKey());
+						cesRooms.setRoomStatus(RoomStatusEnum.EMPTY_CLEAR.getKey());
+					} else if (cesRooms.getRoomStatus().equals(RoomStatusEnum.LIVE_DIRTY.getKey())) {
+						cesRooms.setLastRoomStatus(RoomStatusEnum.LIVE_CLEAR.getKey());
+						cesRooms.setRoomStatus(RoomStatusEnum.LIVE_CLEAR.getKey());
+					}
+					cesRoomsService.updateById(cesRooms);
+				}
+			}
+		}
+		return Result.OK("添加成功!");
+	}
+
+	/**
+	 *  编辑
+	 *
+	 * @param fwRoomClean
+	 * @return
+	 */
+	@AutoLog(value = "fw_room_clean-编辑")
+	@ApiOperation(value="fw_room_clean-编辑", notes="fw_room_clean-编辑")
+	//@RequiresPermissions("fw:fw_room_clean:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody FwRoomClean fwRoomClean) {
+		fwRoomCleanService.updateById(fwRoomClean);
+		return Result.OK("编辑成功!");
+	}
+
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "fw_room_clean-通过id删除")
+	@ApiOperation(value="fw_room_clean-通过id删除", notes="fw_room_clean-通过id删除")
+	//@RequiresPermissions("fw:fw_room_clean:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		fwRoomCleanService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "fw_room_clean-批量删除")
+	@ApiOperation(value="fw_room_clean-批量删除", notes="fw_room_clean-批量删除")
+	//@RequiresPermissions("fw:fw_room_clean:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.fwRoomCleanService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "fw_room_clean-通过id查询")
+	@ApiOperation(value="fw_room_clean-通过id查询", notes="fw_room_clean-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<FwRoomClean> queryById(@RequestParam(name="id",required=true) String id) {
+		FwRoomClean fwRoomClean = fwRoomCleanService.getById(id);
+		if(fwRoomClean==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(fwRoomClean);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param fwRoomClean
+    */
+    //@RequiresPermissions("fw:fw_room_clean:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, FwRoomClean fwRoomClean) {
+        return super.exportXls(request, fwRoomClean, FwRoomClean.class, "fw_room_clean");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("fw:fw_room_clean:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, FwRoomClean.class);
+    }
+
+}

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

@@ -0,0 +1,229 @@
+package org.jeecg.modules.fw.controller;
+
+import java.util.Arrays;
+import java.util.List;
+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.system.query.QueryGenerator;
+import org.jeecg.common.util.TokenUtils;
+import org.jeecg.modules.fw.dto.RoomLockDto;
+import org.jeecg.modules.fw.entity.FwRoomLock;
+import org.jeecg.modules.fw.service.IFwRoomLockService;
+
+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.rooms.Enum.RoomStatusEnum;
+import org.jeecg.modules.rooms.entity.CesRooms;
+import org.jeecg.modules.rooms.service.CesRoomsServiceImpl;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+/**
+ * @Description: fw_room_lock
+ * @Author: jeecg-boot
+ * @Date:   2023-04-17
+ * @Version: V1.0
+ */
+@Api(tags="fw_room_lock")
+@RestController
+@RequestMapping("/fw/fwRoomLock")
+@Slf4j
+public class FwRoomLockController extends JeecgController<FwRoomLock, IFwRoomLockService> {
+	@Autowired
+	private IFwRoomLockService fwRoomLockService;
+	@Autowired
+	private CesRoomsServiceImpl cesRoomsService;
+
+	/**
+	 * 分页列表查询
+	 *
+	 * @param fwRoomLock
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "fw_room_lock-分页列表查询")
+	@ApiOperation(value="fw_room_lock-分页列表查询", notes="fw_room_lock-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<FwRoomLock>> queryPageList(FwRoomLock fwRoomLock,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<FwRoomLock> queryWrapper = QueryGenerator.initQueryWrapper(fwRoomLock, req.getParameterMap());
+		Page<FwRoomLock> page = new Page<FwRoomLock>(pageNo, pageSize);
+		IPage<FwRoomLock> pageList = fwRoomLockService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+
+	/**
+	 *   添加
+	 *
+	 * @param dto
+	 * @return
+	 */
+	@AutoLog(value = "fw_room_lock-添加")
+	@ApiOperation(value="fw_room_lock-添加", notes="fw_room_lock-添加")
+	//@RequiresPermissions("fw:fw_room_lock:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody RoomLockDto dto) {
+		if (ObjectUtils.isEmpty(dto.getRoomLockList())) {
+			return Result.error("请先选择房间");
+		}
+		for (FwRoomLock fwRoomLock : dto.getRoomLockList()) {
+			CesRooms cesRooms = cesRoomsService.getById(fwRoomLock.getRoomId());
+			if (ObjectUtils.isEmpty(cesRooms)) {
+				return Result.error("房间不存在");
+			}
+			if (cesRooms.getRoomStatus().equals(RoomStatusEnum.LIVE_CLEAR.getKey()) || cesRooms.getRoomStatus().equals(RoomStatusEnum.LIVE_DIRTY.getKey())) {
+				return Result.error("房间在住状态不可以锁房");
+			}
+			fwRoomLock.setHotelId(dto.getHotelId());
+			fwRoomLock.setTenantId(TokenUtils.currentTenantId());
+			fwRoomLock.setRemark(dto.getRemark());
+		}
+		Boolean res = fwRoomLockService.saveBatch(dto.getRoomLockList());
+		if (res) {
+			for (FwRoomLock fwRoomLock : dto.getRoomLockList()) {
+//				LambdaUpdateWrapper<CesRooms> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+//				lambdaUpdateWrapper.eq(CesRooms::getId, fwRoomLock.getRoomId());
+//				lambdaUpdateWrapper.set(CesRooms::getRoomStatus, RoomStatusEnum.ON_LOCK.getKey());
+//				cesRoomsService.update(lambdaUpdateWrapper);
+				CesRooms cesRooms = cesRoomsService.getById(fwRoomLock.getRoomId());
+				if (ObjectUtils.isNotEmpty(cesRooms)) {
+					cesRooms.setLastRoomStatus(cesRooms.getRoomStatus());
+					cesRooms.setRoomStatus(RoomStatusEnum.ON_LOCK.getKey());
+					cesRoomsService.updateById(cesRooms);
+				}
+			}
+		}
+		return Result.OK("添加成功!");
+	}
+
+	 /**
+	  *  房间解锁
+	  *
+	  * @param roomIds
+	  * @return
+	  */
+	 @AutoLog(value = "fw_room_lock-房间解锁")
+	 @ApiOperation(value="fw_room_lock-房间解锁", notes="fw_room_lock-房间解锁")
+	 @PostMapping(value = "/offLockRoom")
+	 public Result<String> offLockRoom(@RequestParam(name="roomIds",required=true) String roomIds) {
+		 LambdaQueryWrapper<FwRoomLock> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		 lambdaQueryWrapper.in(FwRoomLock::getRoomId, Arrays.asList(roomIds.split(",")));
+		 this.fwRoomLockService.remove(lambdaQueryWrapper);
+
+		 List<String> list = Arrays.asList(roomIds.split(","));
+		 for (String s : list) {
+			 CesRooms cesRooms = cesRoomsService.getById(s);
+			 if (ObjectUtils.isNotEmpty(cesRooms)) {
+				 if (cesRooms.getRoomStatus().equals(RoomStatusEnum.ON_LOCK.getKey())) {
+					 cesRooms.setRoomStatus(cesRooms.getLastRoomStatus());
+					 cesRoomsService.updateById(cesRooms);
+				 }
+			 }
+		 }
+		 return Result.OK("房间解锁成功!");
+	 }
+
+	/**
+	 *  编辑
+	 *
+	 * @param fwRoomLock
+	 * @return
+	 */
+	@AutoLog(value = "fw_room_lock-编辑")
+	@ApiOperation(value="fw_room_lock-编辑", notes="fw_room_lock-编辑")
+	//@RequiresPermissions("fw:fw_room_lock:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody FwRoomLock fwRoomLock) {
+		fwRoomLockService.updateById(fwRoomLock);
+		return Result.OK("编辑成功!");
+	}
+
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "fw_room_lock-通过id删除")
+	@ApiOperation(value="fw_room_lock-通过id删除", notes="fw_room_lock-通过id删除")
+	//@RequiresPermissions("fw:fw_room_lock:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		fwRoomLockService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "fw_room_lock-批量删除")
+	@ApiOperation(value="fw_room_lock-批量删除", notes="fw_room_lock-批量删除")
+	//@RequiresPermissions("fw:fw_room_lock:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.fwRoomLockService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "fw_room_lock-通过id查询")
+	@ApiOperation(value="fw_room_lock-通过id查询", notes="fw_room_lock-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<FwRoomLock> queryById(@RequestParam(name="id",required=true) String id) {
+		FwRoomLock fwRoomLock = fwRoomLockService.getById(id);
+		if(fwRoomLock==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(fwRoomLock);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param fwRoomLock
+    */
+    //@RequiresPermissions("fw:fw_room_lock:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, FwRoomLock fwRoomLock) {
+        return super.exportXls(request, fwRoomLock, FwRoomLock.class, "fw_room_lock");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("fw:fw_room_lock:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, FwRoomLock.class);
+    }
+
+}

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

@@ -0,0 +1,230 @@
+package org.jeecg.modules.fw.controller;
+
+import java.util.Arrays;
+import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import org.apache.commons.lang3.ObjectUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.TokenUtils;
+import org.jeecg.modules.fw.dto.RoomRepairDto;
+import org.jeecg.modules.fw.entity.FwRoomRepair;
+import org.jeecg.modules.fw.service.IFwRoomRepairService;
+
+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.rooms.Enum.RoomStatusEnum;
+import org.jeecg.modules.rooms.entity.CesRooms;
+import org.jeecg.modules.rooms.service.CesRoomsServiceImpl;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+/**
+ * @Description: fw_room_repair
+ * @Author: jeecg-boot
+ * @Date:   2023-04-17
+ * @Version: V1.0
+ */
+@Api(tags="fw_room_repair")
+@RestController
+@RequestMapping("/fw/fwRoomRepair")
+@Slf4j
+public class FwRoomRepairController extends JeecgController<FwRoomRepair, IFwRoomRepairService> {
+	@Autowired
+	private IFwRoomRepairService fwRoomRepairService;
+	 @Autowired
+	 private CesRoomsServiceImpl cesRoomsService;
+	/**
+	 * 分页列表查询
+	 *
+	 * @param fwRoomRepair
+	 * @param pageNo
+	 * @param pageSize
+	 * @param req
+	 * @return
+	 */
+	//@AutoLog(value = "fw_room_repair-分页列表查询")
+	@ApiOperation(value="fw_room_repair-分页列表查询", notes="fw_room_repair-分页列表查询")
+	@GetMapping(value = "/list")
+	public Result<IPage<FwRoomRepair>> queryPageList(FwRoomRepair fwRoomRepair,
+								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+								   HttpServletRequest req) {
+		QueryWrapper<FwRoomRepair> queryWrapper = QueryGenerator.initQueryWrapper(fwRoomRepair, req.getParameterMap());
+		Page<FwRoomRepair> page = new Page<FwRoomRepair>(pageNo, pageSize);
+		IPage<FwRoomRepair> pageList = fwRoomRepairService.page(page, queryWrapper);
+		return Result.OK(pageList);
+	}
+
+	/**
+	 *   添加
+	 *
+	 * @param dto
+	 * @return
+	 */
+	@AutoLog(value = "fw_room_repair-添加")
+	@ApiOperation(value="fw_room_repair-添加", notes="fw_room_repair-添加")
+	//@RequiresPermissions("fw:fw_room_repair:add")
+	@PostMapping(value = "/add")
+	public Result<String> add(@RequestBody RoomRepairDto dto) {
+		if (ObjectUtils.isEmpty(dto.getRoomRepairList())) {
+			return Result.error("请先选择房间");
+		}
+		for (FwRoomRepair fwRoomRepair : dto.getRoomRepairList()) {
+			CesRooms cesRooms = cesRoomsService.getById(fwRoomRepair.getRoomId());
+			if (ObjectUtils.isEmpty(cesRooms)) {
+				return Result.error("房间不存在");
+			}
+			if (cesRooms.getRoomStatus().equals(RoomStatusEnum.LIVE_CLEAR.getKey()) || cesRooms.getRoomStatus().equals(RoomStatusEnum.LIVE_DIRTY.getKey())) {
+				return Result.error("房间在住状态不可以维修");
+			}
+			fwRoomRepair.setHotelId(dto.getHotelId());
+			fwRoomRepair.setTenantId(TokenUtils.currentTenantId());
+			fwRoomRepair.setRemark(dto.getRemark());
+			fwRoomRepair.setStartDate(dto.getStartDate());
+			fwRoomRepair.setEndDate(dto.getEndDate());
+		}
+		Boolean res = fwRoomRepairService.saveBatch(dto.getRoomRepairList());
+		if (res) {
+			for (FwRoomRepair fwRoomRepair : dto.getRoomRepairList()) {
+//				LambdaUpdateWrapper<CesRooms> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+//				lambdaUpdateWrapper.eq(CesRooms::getId, fwRoomRepair.getRoomId());
+//				lambdaUpdateWrapper.set(CesRooms::getRoomStatus, RoomStatusEnum.IN_SERVICE.getKey());
+//				cesRoomsService.update(lambdaUpdateWrapper);
+				CesRooms cesRooms = cesRoomsService.getById(fwRoomRepair.getRoomId());
+				if (ObjectUtils.isNotEmpty(cesRooms)) {
+					cesRooms.setLastRoomStatus(cesRooms.getRoomStatus());
+					cesRooms.setRoomStatus(RoomStatusEnum.IN_SERVICE.getKey());
+					cesRoomsService.updateById(cesRooms);
+				}
+			}
+		}
+		return Result.OK("添加成功!");
+	}
+
+	 /**
+	  * 房间完成维修
+	  * @param roomIds
+	  * @return
+	  */
+	 @AutoLog(value = "fw_room_lock-房间完成维修")
+	 @ApiOperation(value="fw_room_lock-房间完成维修", notes="fw_room_lock-房间完成维修")
+	 @PostMapping(value = "/completeRepairRoom")
+	 public Result<String> completeRepairRoom(@RequestParam(name="roomIds",required=true) String roomIds) {
+		 LambdaUpdateWrapper<FwRoomRepair> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+		 lambdaUpdateWrapper.in(FwRoomRepair::getRoomId, Arrays.asList(roomIds.split(",")));
+		 lambdaUpdateWrapper.set(FwRoomRepair::getStatus,2);
+		 this.fwRoomRepairService.update(lambdaUpdateWrapper);
+
+		 List<String> list = Arrays.asList(roomIds.split(","));
+		 for (String s : list) {
+			 CesRooms cesRooms = cesRoomsService.getById(s);
+			 if (ObjectUtils.isNotEmpty(cesRooms)) {
+				 if (cesRooms.getRoomStatus().equals(RoomStatusEnum.IN_SERVICE.getKey())) {
+					 cesRooms.setRoomStatus(cesRooms.getLastRoomStatus());
+					 cesRoomsService.updateById(cesRooms);
+				 }
+			 }
+		 }
+		 return Result.OK("房间完成维修成功!");
+	 }
+
+	/**
+	 *  编辑
+	 *
+	 * @param fwRoomRepair
+	 * @return
+	 */
+	@AutoLog(value = "fw_room_repair-编辑")
+	@ApiOperation(value="fw_room_repair-编辑", notes="fw_room_repair-编辑")
+	//@RequiresPermissions("fw:fw_room_repair:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	public Result<String> edit(@RequestBody FwRoomRepair fwRoomRepair) {
+		fwRoomRepairService.updateById(fwRoomRepair);
+		return Result.OK("编辑成功!");
+	}
+
+	/**
+	 *   通过id删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	@AutoLog(value = "fw_room_repair-通过id删除")
+	@ApiOperation(value="fw_room_repair-通过id删除", notes="fw_room_repair-通过id删除")
+	//@RequiresPermissions("fw:fw_room_repair:delete")
+	@DeleteMapping(value = "/delete")
+	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
+		fwRoomRepairService.removeById(id);
+		return Result.OK("删除成功!");
+	}
+
+	/**
+	 *  批量删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@AutoLog(value = "fw_room_repair-批量删除")
+	@ApiOperation(value="fw_room_repair-批量删除", notes="fw_room_repair-批量删除")
+	//@RequiresPermissions("fw:fw_room_repair:deleteBatch")
+	@DeleteMapping(value = "/deleteBatch")
+	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+		this.fwRoomRepairService.removeByIds(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功!");
+	}
+
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "fw_room_repair-通过id查询")
+	@ApiOperation(value="fw_room_repair-通过id查询", notes="fw_room_repair-通过id查询")
+	@GetMapping(value = "/queryById")
+	public Result<FwRoomRepair> queryById(@RequestParam(name="id",required=true) String id) {
+		FwRoomRepair fwRoomRepair = fwRoomRepairService.getById(id);
+		if(fwRoomRepair==null) {
+			return Result.error("未找到对应数据");
+		}
+		return Result.OK(fwRoomRepair);
+	}
+
+    /**
+    * 导出excel
+    *
+    * @param request
+    * @param fwRoomRepair
+    */
+    //@RequiresPermissions("fw:fw_room_repair:exportXls")
+    @RequestMapping(value = "/exportXls")
+    public ModelAndView exportXls(HttpServletRequest request, FwRoomRepair fwRoomRepair) {
+        return super.exportXls(request, fwRoomRepair, FwRoomRepair.class, "fw_room_repair");
+    }
+
+    /**
+      * 通过excel导入数据
+    *
+    * @param request
+    * @param response
+    * @return
+    */
+    //@RequiresPermissions("fw:fw_room_repair:importExcel")
+    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
+        return super.importExcel(request, response, FwRoomRepair.class);
+    }
+
+}

+ 15 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/dto/RoomCleanDto.java

@@ -0,0 +1,15 @@
+package org.jeecg.modules.fw.dto;
+
+import lombok.Data;
+import org.jeecg.modules.fw.entity.FwRoomClean;
+import org.jeecg.modules.fw.entity.FwRoomLock;
+
+import java.util.List;
+
+@Data
+public class RoomCleanDto {
+    private List<FwRoomClean> roomCleanList;
+    private String hotelId;
+    private String remark;
+    private String waiterId;
+}

+ 15 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/dto/RoomLockDto.java

@@ -0,0 +1,15 @@
+package org.jeecg.modules.fw.dto;
+
+import lombok.Data;
+import org.jeecg.modules.fw.entity.FwRoomLock;
+import org.jeecg.modules.pos.entity.PosOrderGoodsPayment;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class RoomLockDto {
+    private List<FwRoomLock> roomLockList;
+    private String hotelId;
+    private String remark;
+}

+ 25 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/dto/RoomRepairDto.java

@@ -0,0 +1,25 @@
+package org.jeecg.modules.fw.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.jeecg.modules.fw.entity.FwRoomLock;
+import org.jeecg.modules.fw.entity.FwRoomRepair;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class RoomRepairDto {
+    private List<FwRoomRepair> roomRepairList;
+    private String hotelId;
+    private String remark;
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    private Date startDate;
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern="yyyy-MM-dd")
+    private Date endDate;
+}

+ 67 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/entity/FwRoomClean.java

@@ -0,0 +1,67 @@
+package org.jeecg.modules.fw.entity;
+
+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 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: fw_room_clean
+ * @Author: jeecg-boot
+ * @Date:   2023-04-17
+ * @Version: V1.0
+ */
+@Data
+@TableName("fw_room_clean")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="fw_room_clean对象", description="fw_room_clean")
+public class FwRoomClean implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    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 roomId;
+	/**房号*/
+	@Excel(name = "房号", width = 15)
+    @ApiModelProperty(value = "房号")
+    private String roomNo;
+	/**备注*/
+	@Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+    private String remark;
+	/**服务员id*/
+	@Excel(name = "服务员id", width = 15)
+    @ApiModelProperty(value = "服务员id")
+    private String waiterId;
+	/**打扫状态 0未打扫 1已打扫*/
+	@Excel(name = "打扫状态 0未打扫 1已打扫", width = 15)
+    @ApiModelProperty(value = "打扫状态 0未打扫 1已打扫")
+    private Integer state;
+}

+ 59 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/entity/FwRoomLock.java

@@ -0,0 +1,59 @@
+package org.jeecg.modules.fw.entity;
+
+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 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: fw_room_lock
+ * @Author: jeecg-boot
+ * @Date:   2023-04-17
+ * @Version: V1.0
+ */
+@Data
+@TableName("fw_room_lock")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="fw_room_lock对象", description="fw_room_lock")
+public class FwRoomLock implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    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 roomId;
+	/**房号*/
+	@Excel(name = "房号", width = 15)
+    @ApiModelProperty(value = "房号")
+    private String roomNo;
+	/**备注*/
+	@Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+    private String remark;
+}

+ 75 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/entity/FwRoomRepair.java

@@ -0,0 +1,75 @@
+package org.jeecg.modules.fw.entity;
+
+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 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: fw_room_repair
+ * @Author: jeecg-boot
+ * @Date:   2023-04-17
+ * @Version: V1.0
+ */
+@Data
+@TableName("fw_room_repair")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="fw_room_repair对象", description="fw_room_repair")
+public class FwRoomRepair implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+	/**id*/
+	@TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "id")
+    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 roomId;
+	/**房号*/
+	@Excel(name = "房号", width = 15)
+    @ApiModelProperty(value = "房号")
+    private String roomNo;
+	/**备注*/
+	@Excel(name = "备注", width = 15)
+    @ApiModelProperty(value = "备注")
+    private String remark;
+	/**维修开始时间*/
+	@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 startDate;
+	/**维修结束时间*/
+	@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 endDate;
+	/**状态 1正在进行 2已完成维修*/
+	@Excel(name = "状态 1正在进行 2已完成维修", width = 15)
+    @ApiModelProperty(value = "状态 1正在进行 2已完成维修")
+    private Integer status;
+}

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

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

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

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

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

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

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/mapper/xml/FwRoomCleanMapper.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.fw.mapper.FwRoomCleanMapper">
+
+</mapper>

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/mapper/xml/FwRoomLockMapper.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.fw.mapper.FwRoomLockMapper">
+
+</mapper>

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/mapper/xml/FwRoomRepairMapper.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.fw.mapper.FwRoomRepairMapper">
+
+</mapper>

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.fw.service;
+
+import org.jeecg.modules.fw.entity.FwRoomClean;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: fw_room_clean
+ * @Author: jeecg-boot
+ * @Date:   2023-04-17
+ * @Version: V1.0
+ */
+public interface IFwRoomCleanService extends IService<FwRoomClean> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.fw.service;
+
+import org.jeecg.modules.fw.entity.FwRoomLock;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: fw_room_lock
+ * @Author: jeecg-boot
+ * @Date:   2023-04-17
+ * @Version: V1.0
+ */
+public interface IFwRoomLockService extends IService<FwRoomLock> {
+
+}

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

@@ -0,0 +1,14 @@
+package org.jeecg.modules.fw.service;
+
+import org.jeecg.modules.fw.entity.FwRoomRepair;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: fw_room_repair
+ * @Author: jeecg-boot
+ * @Date:   2023-04-17
+ * @Version: V1.0
+ */
+public interface IFwRoomRepairService extends IService<FwRoomRepair> {
+
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.fw.service.impl;
+
+import org.jeecg.modules.fw.entity.FwRoomClean;
+import org.jeecg.modules.fw.mapper.FwRoomCleanMapper;
+import org.jeecg.modules.fw.service.IFwRoomCleanService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: fw_room_clean
+ * @Author: jeecg-boot
+ * @Date:   2023-04-17
+ * @Version: V1.0
+ */
+@Service
+public class FwRoomCleanServiceImpl extends ServiceImpl<FwRoomCleanMapper, FwRoomClean> implements IFwRoomCleanService {
+
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.fw.service.impl;
+
+import org.jeecg.modules.fw.entity.FwRoomLock;
+import org.jeecg.modules.fw.mapper.FwRoomLockMapper;
+import org.jeecg.modules.fw.service.IFwRoomLockService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: fw_room_lock
+ * @Author: jeecg-boot
+ * @Date:   2023-04-17
+ * @Version: V1.0
+ */
+@Service
+public class FwRoomLockServiceImpl extends ServiceImpl<FwRoomLockMapper, FwRoomLock> implements IFwRoomLockService {
+
+}

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

@@ -0,0 +1,19 @@
+package org.jeecg.modules.fw.service.impl;
+
+import org.jeecg.modules.fw.entity.FwRoomRepair;
+import org.jeecg.modules.fw.mapper.FwRoomRepairMapper;
+import org.jeecg.modules.fw.service.IFwRoomRepairService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: fw_room_repair
+ * @Author: jeecg-boot
+ * @Date:   2023-04-17
+ * @Version: V1.0
+ */
+@Service
+public class FwRoomRepairServiceImpl extends ServiceImpl<FwRoomRepairMapper, FwRoomRepair> implements IFwRoomRepairService {
+
+}

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

@@ -164,6 +164,8 @@ private IPosTableService posTableService;
 		 }
 		 if (ObjectUtils.isNotEmpty(posOrderGoods.getToRoomFeeOrderId())) {
 			 posOrderGoods.setStatus(1);
+			 posOrderGoods.setSettleTime(new Date());
+			 posOrderGoods.setPayInfo("挂房账");
 		 }
 		 posOrderGoods.setTenantId(TokenUtils.currentTenantId());
 		 BigDecimal amount = BigDecimal.ZERO;

+ 29 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/controller/CesRoomsController.java

@@ -3,11 +3,13 @@ package org.jeecg.modules.rooms.controller;
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.EnumUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
+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;
@@ -19,6 +21,7 @@ import org.jeecg.modules.business.entity.BusRoomsLivingOrder;
 import org.jeecg.modules.business.entity.BusTeam;
 import org.jeecg.modules.business.service.IBusRoomBookingOrdersService;
 import org.jeecg.modules.business.service.IBusTeamService;
+import org.jeecg.modules.fw.entity.FwRoomLock;
 import org.jeecg.modules.rooms.DTO.*;
 import org.jeecg.modules.rooms.Enum.CouponEnums;
 import org.jeecg.modules.rooms.Enum.RoomStatusEnum;
@@ -349,5 +352,31 @@ public class CesRoomsController {
             return Result.error(e.getMessage());
         }
     }
+
+    /**
+     * 房间智障
+     * @param roomIds
+     * @return
+     */
+    @AutoLog(value = "房间智障")
+    @ApiOperation(value="房间智障", notes="房间智障")
+    @PostMapping(value = "/dirtyRoom")
+    public Result<String> dirtyRoom(@RequestParam(name="roomIds",required=true) String roomIds) {
+        List<String> list = Arrays.asList(roomIds.split(","));
+        for (String s : list) {
+            CesRooms cesRooms = roomsService.getById(s);
+            if (ObjectUtils.isNotEmpty(cesRooms)) {
+                if (cesRooms.getRoomStatus().equals(RoomStatusEnum.EMPTY_CLEAR.getKey())) {
+                    cesRooms.setLastRoomStatus(RoomStatusEnum.EMPTY_DIRTY.getKey());
+                    cesRooms.setRoomStatus(RoomStatusEnum.EMPTY_DIRTY.getKey());
+                } else if (cesRooms.getRoomStatus().equals(RoomStatusEnum.LIVE_CLEAR.getKey())) {
+                    cesRooms.setLastRoomStatus(RoomStatusEnum.LIVE_DIRTY.getKey());
+                    cesRooms.setRoomStatus(RoomStatusEnum.LIVE_DIRTY.getKey());
+                }
+                roomsService.updateById(cesRooms);
+            }
+        }
+        return Result.OK("房间置脏成功!");
+    }
 }
 

+ 3 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesRooms.java

@@ -119,6 +119,9 @@ public class CesRooms extends Model<CesRooms> {
     @ApiModelProperty(value = "入住ID")
     private String livingOrderId;
 
+    @ApiModelProperty(value = "上次房态")
+    private Integer lastRoomStatus;
+
 
     public static final String ID = "id";