Explorar el Código

fix: 客房系统
1.开门记录同步

luoyb hace 1 año
padre
commit
37870ab26e

+ 1 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/mapper/PtRoomMapper.java

@@ -24,4 +24,5 @@ public interface PtRoomMapper extends BaseMapperPlus<PtRoom, PtRoomVo> {
     List<PtRoomVo> selectRoomLockList(@Param(Constants.WRAPPER) Wrapper<PtRoom> ew);
     List<PtRoomVo> selectHotelRoomList(@Param("areaIds") List<Long> areaIds);
     List<PtRoomVo> selectHotelRoomList();
+    PtRoomVo selectHotelRoom(@Param("roomCode") String roomCode);
 }

+ 6 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/service/IPtRoomService.java

@@ -121,5 +121,10 @@ public interface IPtRoomService {
      * @return 客房集合
      */
     List<PtRoomVo>queryHotelRoomList();
-
+    /**
+     * 根据房间号查询客房信息
+     * @param roomCode 房间号
+     * @return 房间信息
+     */
+    PtRoomVo selectHotelRoom(String roomCode);
 }

+ 9 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/basics/service/impl/PtRoomServiceImpl.java

@@ -422,4 +422,13 @@ public class PtRoomServiceImpl implements IPtRoomService {
         return baseMapper.selectHotelRoomList();
     }
 
+    /**
+     * 根据房间号查询客房信息
+     * @param roomCode 房间号
+     * @return 房间信息
+     */
+    @Override
+    public PtRoomVo selectHotelRoom(String roomCode) {
+        return baseMapper.selectHotelRoom(roomCode);
+    }
 }

+ 18 - 2
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/business/lock/LockBusiness.java

@@ -163,6 +163,22 @@ public class LockBusiness {
         return openDoorRecord.get();
     }
 
+    public Integer queryOpenDoorRecordByRoomCode(String RoomCode) {
+        PtRoomVo vo = roomService.selectHotelRoom(RoomCode);
+        if (ObjectUtil.isNotEmpty(vo)) {
+            return queryOpenDoorRecord(vo.getLockId(), vo.getRoomCode(), vo.getRoomName());
+        } else {
+            return 0;
+        }
+    }
+    public Integer queryOpenDoorRecordByRoomCode(String RoomCode,int pageNo) {
+        PtRoomVo vo = roomService.selectHotelRoom(RoomCode);
+        if (ObjectUtil.isNotEmpty(vo)) {
+            return queryOpenDoorRecord(vo.getLockId(), vo.getRoomCode(), vo.getRoomName(),pageNo);
+        } else {
+            return 0;
+        }
+    }
     /**
      * 同步处理开门记录(指定门锁)
      *
@@ -170,7 +186,7 @@ public class LockBusiness {
      * @param roomCode
      * @param roomName
      */
-    public Integer queryOpenDoorRecord(String lockId, String roomCode, String roomName) {
+    private Integer queryOpenDoorRecord(String lockId, String roomCode, String roomName) {
         Map<String, Object> formMap = new HashMap<>();
         formMap.put("KEYLOCKID", lockId);
         formMap.put("CARDPSWBIT", "1");
@@ -198,7 +214,7 @@ public class LockBusiness {
      * @param pageNo   页码
      * @return 记录条数
      */
-    public Integer queryOpenDoorRecord(String lockId, String roomCode, String roomName, int pageNo) {
+    private Integer queryOpenDoorRecord(String lockId, String roomCode, String roomName, int pageNo) {
         Map<String, Object> formMap = new HashMap<>();
         formMap.put("KEYLOCKID", lockId);
         formMap.put("CARDPSWBIT", "1");

+ 12 - 9
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/controller/lock/LockController.java

@@ -83,25 +83,27 @@ public class LockController {
     }
 
     /**
-     * 同步指定门锁的开门记录(全部记录)
-     * @param lockId 门锁Id
+     * 同步指定房间的开门记录(全部记录)
+     * @param roomCode 房间编号
      */
-    @GetMapping(value = "/open/record/{lockId}")
-    public ReturnResult queryOpenDoorRecord(@PathVariable String lockId) {
-        Integer syncCount = lockBusiness.queryOpenDoorRecord(lockId, "", "");
+    @GetMapping(value = "/open/record/{roomCode}")
+    public ReturnResult queryOpenDoorRecord(@PathVariable String roomCode) {
+        Integer syncCount = lockBusiness.queryOpenDoorRecordByRoomCode(roomCode);
         String message = MessageFormat.format("开门记录同步完成,本次同步了 {0} 条记录", syncCount);
+        log.info(message);
         return ReturnResult.success(message);
     }
 
     /**
      * 同步指定门锁的开门记录(指定页码)
-     * @param lockId 门锁Id
+     * @param roomCode 门锁Id
      * @param pageNo 页码
      */
-    @GetMapping(value = "/open/record/{lockId}/{pageNo}")
-    public ReturnResult queryOpenDoorRecord(@PathVariable String lockId, @PathVariable int pageNo) {
-        Integer syncCount = lockBusiness.queryOpenDoorRecord(lockId, "", lockId, pageNo);
+    @GetMapping(value = "/open/record/{roomCode}/{pageNo}")
+    public ReturnResult queryOpenDoorRecord(@PathVariable String roomCode, @PathVariable int pageNo) {
+        Integer syncCount = lockBusiness.queryOpenDoorRecordByRoomCode(roomCode,  pageNo);
         String message = MessageFormat.format("开门记录同步完成,本次同步了 {0} 条记录", syncCount);
+        log.info(message);
         return ReturnResult.success(message);
     }
 
@@ -114,6 +116,7 @@ public class LockController {
     public ReturnResult queryOpenDoorRecord() {
         Integer syncCount = lockBusiness.queryOpenDoorRecord();
         String message = MessageFormat.format("开门记录同步完成,本次同步了 {0} 条记录", syncCount);
+        log.info(message);
         return ReturnResult.success(message);
     }
 }

+ 9 - 0
ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/basics/room/PtRoomMapper.xml

@@ -53,4 +53,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </foreach>
         </if>
     </select>
+
+    <select id="selectHotelRoom" resultType="org.dromara.backstage.basics.domain.vo.PtRoomVo">
+        SELECT tpr.*,tkrlr.lock_id,tkrlr.lock_password FROM t_pt_room tpr
+        INNER JOIN t_kf_room_lock_r tkrlr on tkrlr.room_id=tpr.room_id
+        where tpr.del_flag='0'
+        <if test="roomCode != null and roomCode!=''" >
+            and tpr.room_code = #{roomCode}
+        </if>
+    </select>
 </mapper>

+ 1 - 1
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/service/IKfDoorOpenHisService.java

@@ -47,7 +47,7 @@ public interface IKfDoorOpenHisService {
      * @param bo 开门记录
      * @return 是否新增成功
      */
-    Boolean insertByBo(KfDoorOpenHisBo bo);
+    Integer insertByBo(KfDoorOpenHisBo bo);
 
     /**
      * 修改开门记录

+ 13 - 13
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/service/impl/KfDoorOpenHisServiceImpl.java

@@ -40,7 +40,7 @@ public class KfDoorOpenHisServiceImpl implements IKfDoorOpenHisService {
      * @return 开门记录
      */
     @Override
-    public KfDoorOpenHisVo queryById(Long id){
+    public KfDoorOpenHisVo queryById(Long id) {
         return baseMapper.selectVoById(id);
     }
 
@@ -76,24 +76,24 @@ public class KfDoorOpenHisServiceImpl implements IKfDoorOpenHisService {
         lqw.like(StringUtils.isNotBlank(bo.getRoomCode()), KfDoorOpenHis::getRoomCode, bo.getRoomCode());
         lqw.eq(StringUtils.isNotBlank(bo.getOpenDoorMode()), KfDoorOpenHis::getOpenDoorMode, bo.getOpenDoorMode());
         lqw.between(params.get("beginOpenTime") != null && params.get("endOpenTime") != null,
-            KfDoorOpenHis::getOpenTime ,params.get("beginOpenTime"), params.get("endOpenTime"));
+            KfDoorOpenHis::getOpenTime, params.get("beginOpenTime"), params.get("endOpenTime"));
         lqw.eq(StringUtils.isNotBlank(bo.getOpenResult()), KfDoorOpenHis::getOpenResult, bo.getOpenResult());
         lqw.orderByDesc(KfDoorOpenHis::getOpenTime);
         return lqw;
     }
 
-    private QueryWrapper<KfDoorOpenHis> buildQueryWrapper(KfDoorOpenHisBo bo,String tableAlias) {
+    private QueryWrapper<KfDoorOpenHis> buildQueryWrapper(KfDoorOpenHisBo bo, String tableAlias) {
         QueryWrapper<KfDoorOpenHis> lqw = new QueryWrapper<>();
         Map<String, Object> params = bo.getParams();
         String columnPrefix = "";
-        if(StringUtils.isNotBlank(tableAlias)){
+        if (StringUtils.isNotBlank(tableAlias)) {
             columnPrefix = tableAlias + ".";
         }
-        lqw.like(StringUtils.isNotBlank(bo.getRoomCode()), columnPrefix+"room_code", bo.getRoomCode());
-        lqw.eq(StringUtils.isNotBlank(bo.getOpenDoorMode()), columnPrefix+"open_door_mode", bo.getOpenDoorMode());
+        lqw.like(StringUtils.isNotBlank(bo.getRoomCode()), columnPrefix + "room_code", bo.getRoomCode());
+        lqw.eq(StringUtils.isNotBlank(bo.getOpenDoorMode()), columnPrefix + "open_door_mode", bo.getOpenDoorMode());
         lqw.between(params.get("beginOpenTime") != null && params.get("endOpenTime") != null,
-        columnPrefix+"open_time" ,params.get("beginOpenTime"), params.get("endOpenTime"));
-        lqw.eq(StringUtils.isNotBlank(bo.getOpenResult()), columnPrefix+"open_result", bo.getOpenResult());
+            columnPrefix + "open_time", params.get("beginOpenTime"), params.get("endOpenTime"));
+        lqw.eq(StringUtils.isNotBlank(bo.getOpenResult()), columnPrefix + "open_result", bo.getOpenResult());
         return lqw;
     }
 
@@ -104,11 +104,11 @@ public class KfDoorOpenHisServiceImpl implements IKfDoorOpenHisService {
      * @return 是否新增成功
      */
     @Override
-    public Boolean insertByBo(KfDoorOpenHisBo bo) {
+    public Integer insertByBo(KfDoorOpenHisBo bo) {
         KfDoorOpenHis add = MapstructUtils.convert(bo, KfDoorOpenHis.class);
         validEntityBeforeSave(add);
-        boolean flag = baseMapper.insert(add) > 0;
-        if (flag) {
+        int flag = baseMapper.insert(add);
+        if (flag > 0) {
             bo.setId(add.getId());
         }
         return flag;
@@ -130,7 +130,7 @@ public class KfDoorOpenHisServiceImpl implements IKfDoorOpenHisService {
     /**
      * 保存前的数据校验
      */
-    private void validEntityBeforeSave(KfDoorOpenHis entity){
+    private void validEntityBeforeSave(KfDoorOpenHis entity) {
         //TODO 做一些数据校验,如唯一约束
     }
 
@@ -143,7 +143,7 @@ public class KfDoorOpenHisServiceImpl implements IKfDoorOpenHisService {
      */
     @Override
     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
+        if (isValid) {
             //TODO 做一些业务上的校验,判断是否需要校验
         }
         return baseMapper.deleteByIds(ids) > 0;