Ver código fonte

feature: 客房系统
1.自助报到和客房相关的功能

luoyb 1 ano atrás
pai
commit
b1072d09a8

+ 6 - 0
ruoyi-api/ruoyi-api-hotel/src/main/java/org/dromara/hotel/api/domain/bo/RemoteOrderBo.java

@@ -48,6 +48,12 @@ public class RemoteOrderBo implements Serializable {
      * 原始数据ID
      */
     private String otherId;
+
+    /**
+     * 团体Id
+     */
+    private Long teamId;
+
     //endregion
 
     //region 客人入住信息

+ 9 - 0
ruoyi-api/ruoyi-api-hotel/src/main/java/org/dromara/hotel/api/service/RemoteOrderService.java

@@ -3,6 +3,8 @@ package org.dromara.hotel.api.service;
 import org.dromara.hotel.api.domain.bo.RemoteOrderBo;
 import org.dromara.hotel.api.domain.vo.RemoteOrderVo;
 
+import java.util.List;
+
 /**
  * @ClassName RemoteConsumeService
  * @Description 酒店系统客人远程服务接口
@@ -26,4 +28,11 @@ public interface RemoteOrderService {
      * @return 入住信息
      */
     RemoteOrderVo checkInTeamByBo(RemoteOrderBo remoteBo);
+
+    /**
+     * 根据团体的统一标识查询锁房信息,对团体而言,只查询锁定的房间
+     * @param otherId 统一标识
+     * @return 锁房列表
+     */
+    List<RemoteOrderVo> selectTeamRoom(String otherId);
 }

+ 9 - 0
ruoyi-api/ruoyi-api-hotel/src/main/java/org/dromara/hotel/api/service/RemoteTeamService.java

@@ -5,6 +5,8 @@ import org.dromara.common.core.domain.model.ErrorInfo;
 import org.dromara.hotel.api.domain.bo.RemoteTeamBo;
 import org.dromara.hotel.api.domain.vo.RemoteTeamVo;
 
+import java.util.List;
+
 /**
  * @ClassName RemoteTeamService
  * @Description 酒店系统团客远程服务接口
@@ -35,4 +37,11 @@ public interface RemoteTeamService {
      * @return 团客信息
      */
     R<RemoteTeamVo> selectTeamByBo(RemoteTeamBo remoteBo);
+
+    /**
+     * 根据统一标识查询正进行的团客
+     * @param otherId 统一身份标识
+     * @return 团客列表
+     */
+    R<List<RemoteTeamVo>> selectDoingTeamByOtherId(String otherId);
 }

+ 4 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/business/self/TraineeBusiness.java

@@ -129,6 +129,10 @@ public class TraineeBusiness {
         return map;
     }
 
+    public List<RemoteDeptVo> selectDoingClass(Date doingDate){
+        return remoteDeptService.selectDoingClass(doingDate);
+    }
+
     private void setTraineeCardInfo(YcTraineeVo traineeVo) {
         List<PtCardVo> cardVos = cardService.queryList(new PtCardBo().setUserId(Long.valueOf(traineeVo.getUserId())));
         List<YcCardVo> ycCardVos = new ArrayList<>();

+ 14 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/controller/self/TraineeController.java

@@ -17,8 +17,11 @@ import org.dromara.common.core.domain.model.ErrorInfo;
 import org.dromara.common.core.enums.ResultCodeEnum;
 import org.dromara.common.json.utils.JsonUtils;
 import org.dromara.common.redis.utils.RedisUtils;
+import org.dromara.system.api.domain.vo.RemoteDeptVo;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Date;
+import java.util.List;
 import java.util.concurrent.LinkedBlockingQueue;
 
 /**
@@ -93,7 +96,7 @@ public class TraineeController {
      * @return 报到结果
      */
     @PostMapping("/api/v1/register")
-    public ReturnResult checkinTrainee(@RequestBody YcTraineeBo bo) {
+    public ReturnResult checkInTrainee(@RequestBody YcTraineeBo bo) {
         // LinkedBlockingQueue<String> concurrentLinkedQueue = RedisUtils.getCacheObject("class_room_1857338992129335298");
         //
         // String roomCode = concurrentLinkedQueue.poll();
@@ -112,6 +115,16 @@ public class TraineeController {
         return ReturnResult.success(traineeVo);
     }
 
+    /**
+     * 获取正在进行的班级
+     * @param doingDate 进行时间
+     * @return 班级列表
+     */
+    @GetMapping("/api/v1/doing/class/{doingDate}")
+    public ReturnResult selectDoingClass(@PathVariable("doingDate") String doingDate){
+        List<RemoteDeptVo> list = traineeBusiness.selectDoingClass(DateUtil.parseDate(doingDate));
+        return ReturnResult.success(list);
+    }
     @PostMapping("/api/v1/lock/room")
     public ReturnResult lockRoomTest() {
         LinkedBlockingQueue<String> concurrentLinkedQueue = new LinkedBlockingQueue<>();

+ 13 - 7
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/dubbo/RemoteTeamServiceImpl.java

@@ -41,9 +41,12 @@ public class RemoteTeamServiceImpl implements RemoteTeamService {
     public R<ErrorInfo> insertTeamByBo(RemoteTeamBo remoteBo) {
         try{
             KfTeamBo bo = MapstructUtils.convert(remoteBo, KfTeamBo.class);
-            boolean flag = kfTeamService.insertByBo(bo);
-            if(flag){
-                return R.ok("增加团客信息成功");
+            if (bo != null) {
+                bo.setCreateBy(remoteBo.getOperatorId());
+                boolean flag = kfTeamService.insertByBo(bo);
+                if(flag){
+                    return R.ok("增加团客信息成功");
+                }
             }
             return R.fail("增加团客信息失败");
         }catch (Exception e){
@@ -61,11 +64,14 @@ public class RemoteTeamServiceImpl implements RemoteTeamService {
     public R<ErrorInfo> updateTeamByBo(RemoteTeamBo remoteBo) {
         try{
             KfTeamBo bo = MapstructUtils.convert(remoteBo, KfTeamBo.class);
-            boolean flag = kfTeamService.updateByBo(bo);
-            if(flag){
-                return R.ok("修改团客信息成功");
+            if (bo != null) {
+                bo.setUpdateBy(remoteBo.getOperatorId());
+                boolean flag = kfTeamService.updateByBo(bo);
+                if(flag){
+                    return R.ok("修改团客信息成功");
+                }
             }
-            return R.fail("修改团客信息失败");
+           return R.fail("修改团客信息失败");
         }catch (Exception e){
             log.error("修改团客信息失败-{}-{}", JsonUtils.toJsonString(remoteBo),e.getMessage());
             return R.fail("修改团客信息失败");

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteDeptServiceImpl.java

@@ -178,7 +178,7 @@ public class RemoteDeptServiceImpl implements RemoteDeptService {
     public List<RemoteDeptVo> selectDoingClass(Date doingDate) {
         List<SysDeptVo> list = sysDeptService.selectDoingClass(doingDate);
         if (CollectionUtil.isNotEmpty(list)) {
-            MapstructUtils.convert(list, RemoteDeptVo.class);
+           return MapstructUtils.convert(list, RemoteDeptVo.class);
         }
         return null;
     }

+ 39 - 36
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java

@@ -1,7 +1,6 @@
 package org.dromara.system.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.lang.tree.Tree;
 import cn.hutool.core.util.ObjectUtil;
@@ -19,7 +18,6 @@ import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.core.utils.TreeBuildUtils;
 import org.dromara.common.mybatis.helper.DataBaseHelper;
 import org.dromara.common.redis.utils.CacheUtils;
-import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.system.domain.SysDept;
 import org.dromara.system.domain.SysRole;
@@ -106,10 +104,10 @@ public class SysDeptServiceImpl implements ISysDeptService {
             return CollUtil.newArrayList();
         }
         return TreeBuildUtils.build(depts, (dept, tree) ->
-                                               tree.setId(dept.getDeptId())
-                                                   .setParentId(dept.getParentId())
-                                                   .setName(dept.getDeptName())
-                                                   .setWeight(dept.getOrderNum()));
+            tree.setId(dept.getDeptId())
+                .setParentId(dept.getParentId())
+                .setName(dept.getDeptName())
+                .setWeight(dept.getOrderNum()));
     }
 
     /**
@@ -138,7 +136,7 @@ public class SysDeptServiceImpl implements ISysDeptService {
             return null;
         }
         SysDeptVo parentDept = baseMapper.selectVoOne(new LambdaQueryWrapper<SysDept>()
-                                                          .select(SysDept::getDeptName).eq(SysDept::getDeptId, dept.getParentId()));
+            .select(SysDept::getDeptName).eq(SysDept::getDeptId, dept.getParentId()));
         dept.setParentName(ObjectUtil.isNotNull(parentDept) ? parentDept.getDeptName() : null);
         return dept;
     }
@@ -152,9 +150,9 @@ public class SysDeptServiceImpl implements ISysDeptService {
     @Override
     public List<SysDeptVo> selectDeptByIds(List<Long> deptIds) {
         return baseMapper.selectDeptList(new LambdaQueryWrapper<SysDept>()
-                                             .select(SysDept::getDeptId, SysDept::getDeptName)
-                                             .eq(SysDept::getStatus, UserConstants.DEPT_NORMAL)
-                                             .in(CollUtil.isNotEmpty(deptIds), SysDept::getDeptId, deptIds));
+            .select(SysDept::getDeptId, SysDept::getDeptName)
+            .eq(SysDept::getStatus, UserConstants.DEPT_NORMAL)
+            .in(CollUtil.isNotEmpty(deptIds), SysDept::getDeptId, deptIds));
     }
 
     /**
@@ -184,8 +182,8 @@ public class SysDeptServiceImpl implements ISysDeptService {
     @Override
     public long selectNormalChildrenDeptById(Long deptId) {
         return baseMapper.selectCount(new LambdaQueryWrapper<SysDept>()
-                                          .eq(SysDept::getStatus, UserConstants.DEPT_NORMAL)
-                                          .apply(DataBaseHelper.findInSet(deptId, "ancestors")));
+            .eq(SysDept::getStatus, UserConstants.DEPT_NORMAL)
+            .apply(DataBaseHelper.findInSet(deptId, "ancestors")));
     }
 
     /**
@@ -197,7 +195,7 @@ public class SysDeptServiceImpl implements ISysDeptService {
     @Override
     public boolean hasChildByDeptId(Long deptId) {
         return baseMapper.exists(new LambdaQueryWrapper<SysDept>()
-                                     .eq(SysDept::getParentId, deptId));
+            .eq(SysDept::getParentId, deptId));
     }
 
     /**
@@ -209,7 +207,7 @@ public class SysDeptServiceImpl implements ISysDeptService {
     @Override
     public boolean checkDeptExistUser(Long deptId) {
         return userMapper.exists(new LambdaQueryWrapper<SysUser>()
-                                     .eq(SysUser::getDeptId, deptId));
+            .eq(SysUser::getDeptId, deptId));
     }
 
     /**
@@ -221,9 +219,9 @@ public class SysDeptServiceImpl implements ISysDeptService {
     @Override
     public boolean checkDeptNameUnique(SysDeptBo dept) {
         boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysDept>()
-                                              .eq(SysDept::getDeptName, dept.getDeptName())
-                                              .eq(SysDept::getParentId, dept.getParentId())
-                                              .ne(ObjectUtil.isNotNull(dept.getDeptId()), SysDept::getDeptId, dept.getDeptId()));
+            .eq(SysDept::getDeptName, dept.getDeptName())
+            .eq(SysDept::getParentId, dept.getParentId())
+            .ne(ObjectUtil.isNotNull(dept.getDeptId()), SysDept::getDeptId, dept.getDeptId()));
         return !exist;
     }
 
@@ -312,7 +310,7 @@ public class SysDeptServiceImpl implements ISysDeptService {
         }
         int result = baseMapper.updateById(dept);
         if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors())
-                && !StringUtils.equals(UserConstants.DEPT_NORMAL, dept.getAncestors())) {
+            && !StringUtils.equals(UserConstants.DEPT_NORMAL, dept.getAncestors())) {
             // 如果该部门是启用状态,则启用该部门的所有上级部门
             updateParentDeptStatusNormal(dept);
         }
@@ -328,8 +326,8 @@ public class SysDeptServiceImpl implements ISysDeptService {
         String ancestors = dept.getAncestors();
         Long[] deptIds = Convert.toLongArray(ancestors);
         baseMapper.update(null, new LambdaUpdateWrapper<SysDept>()
-                                    .set(SysDept::getStatus, UserConstants.DEPT_NORMAL)
-                                    .in(SysDept::getDeptId, Arrays.asList(deptIds)));
+            .set(SysDept::getStatus, UserConstants.DEPT_NORMAL)
+            .in(SysDept::getDeptId, Arrays.asList(deptIds)));
     }
 
     /**
@@ -341,7 +339,7 @@ public class SysDeptServiceImpl implements ISysDeptService {
      */
     private void updateDeptChildren(Long deptId, String newAncestors, String oldAncestors) {
         List<SysDept> children = baseMapper.selectList(new LambdaQueryWrapper<SysDept>()
-                                                           .apply(DataBaseHelper.findInSet(deptId, "ancestors")));
+            .apply(DataBaseHelper.findInSet(deptId, "ancestors")));
         List<SysDept> list = new ArrayList<>();
         for (SysDept child : children) {
             SysDept dept = new SysDept();
@@ -375,9 +373,9 @@ public class SysDeptServiceImpl implements ISysDeptService {
             return CollUtil.newArrayList(deptId);
         }
         return baseMapper.selectList(Wrappers.lambdaQuery(SysDept.class)
-                                         .select(SysDept::getDeptId)
-                                         .eq(SysDept::getParentId, deptId).or().eq(SysDept::getDeptId, deptId).or().likeRight(SysDept::getAncestors,
-                                                                                                                              sysDeptVo.getAncestors() + "," + deptId)
+            .select(SysDept::getDeptId)
+            .eq(SysDept::getParentId, deptId).or().eq(SysDept::getDeptId, deptId).or().likeRight(SysDept::getAncestors,
+                sysDeptVo.getAncestors() + "," + deptId)
         ).stream().map(SysDept::getDeptId).toList();
     }
 
@@ -394,8 +392,8 @@ public class SysDeptServiceImpl implements ISysDeptService {
     @Override
     public SysDeptVo selectDeptByParentIdAndName(Long parentId, String deptName) {
         return baseMapper.selectVoOne(new LambdaQueryWrapper<SysDept>()
-                                          .eq(SysDept::getParentId, parentId)
-                                          .eq(SysDept::getDeptName, deptName));
+            .eq(SysDept::getParentId, parentId)
+            .eq(SysDept::getDeptName, deptName));
     }
 
     @Override
@@ -418,20 +416,25 @@ public class SysDeptServiceImpl implements ISysDeptService {
 
     /**
      * 查询指定时间的进行中的班级
+     *
      * @param doingDate 指定时间
      * @return 班级列表
      */
     @Override
     public List<SysDeptVo> selectDoingClass(Date doingDate) {
-        List<SysDeptVo> redisList = RedisUtils.getCacheList(CacheNames.DOING_CLASS);
-        if(CollectionUtil.isNotEmpty(redisList)){
-            return redisList;
-        }
-        List<SysDeptVo> list = baseMapper.selectVoList(new LambdaQueryWrapper<SysDept>().ge(SysDept::getCheckDate, doingDate).le(SysDept::getEndDate, doingDate));
-        if(CollectionUtil.isNotEmpty(redisList)){
-            RedisUtils.setCacheList(CacheNames.DOING_CLASS, list);
-            return list;
-        }
-        return null;
+        //List<SysDeptVo> redisList = RedisUtils.getCacheList(CacheNames.DOING_CLASS);
+        //if(CollectionUtil.isNotEmpty(redisList)){
+        //    return redisList;
+        //}
+        //List<SysDeptVo> list = baseMapper.selectVoList(new LambdaQueryWrapper<SysDept>()
+        //    .le(SysDept::getCheckDate, doingDate).ge(SysDept::getEndDate, doingDate));
+        //if(CollectionUtil.isNotEmpty(list)){
+        //    RedisUtils.setCacheList(CacheNames.DOING_CLASS, list);
+        //    return list;
+        //}
+        //return null;
+
+        return baseMapper.selectVoList(new LambdaQueryWrapper<SysDept>()
+            .le(SysDept::getCheckDate, doingDate).ge(SysDept::getEndDate, doingDate));
     }
 }

+ 2 - 0
ruoyi-server/ruoyi-server-base/src/main/java/org/dromara/server/base/service/dept/strategy/impl/TrainClassStrategyImpl.java

@@ -221,9 +221,11 @@ public class TrainClassStrategyImpl implements ISyncDeptStrategy {
         RemoteTeamBo remoteTeamBo;
         if (ObjUtil.isEmpty(remoteTeamVo)) {
             remoteTeamBo = new RemoteTeamBo();
+            //remoteTeamBo.set
         } else {
             remoteTeamBo = BeanUtil.copyProperties(remoteTeamVo, RemoteTeamBo.class);
         }
+        remoteTeamBo.setOperatorId(DefaultConstants.FULL_SYNC_ADMIN);
         remoteTeamBo.setName(resourceDept.getDept_name());
         remoteTeamBo.setStartTime(resourceDept.getBeginDate());
         remoteTeamBo.setEndTime(resourceDept.getEndDate());