瀏覽代碼

feature: 门锁对接
1.完善发员工卡

luo.yibo@datuai.com 1 年之前
父節點
當前提交
97b9a33488

+ 87 - 0
ruoyi-api/ruoyi-api-hotel/src/main/java/org/dromara/hotel/api/domain/bo/RemoteCardDataBo.java

@@ -0,0 +1,87 @@
+package org.dromara.hotel.api.domain.bo;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 发卡记录业务对象 t_kf_provide_card_his
+ *
+ * @author LionLi
+ * @date 2024-12-03
+ */
+@Data
+public class RemoteCardDataBo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -5379473789330294396L;
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 卡片ID
+     */
+    private Long cardId;
+
+    /**
+     * 物理卡号
+     */
+    @NotBlank(message = "物理卡号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String factoryId;
+
+    /**
+     * 卡片类别
+     */
+    @NotBlank(message = "卡片类别不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String cardType;
+
+    /**
+     * 房间编号
+     */
+    @NotBlank(message = "房间编号不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String roomCode;
+
+    @NotNull(message = "持卡人ID不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long masterId;
+
+    @NotBlank(message = "持卡人不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String masterName;
+
+    /**
+     * 生效时间
+     */
+    @NotNull(message = "生效时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date startTime;
+
+    /**
+     * 失效时间
+     */
+    @NotNull(message = "失效时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Date endTime;
+
+    /**
+     * 回收时间
+     */
+    private Date recycleTime;
+
+    /**
+     * 卡片状态(1:正常;0:回收)
+     */
+    @NotBlank(message = "卡片状态(1:正常;0:回收)不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String cardStatus;
+
+    /**
+     * 备注(记录房卡权限范围)
+     */
+    private String remark;
+
+
+}

+ 24 - 0
ruoyi-api/ruoyi-api-hotel/src/main/java/org/dromara/hotel/api/service/RemoteCardDataService.java

@@ -0,0 +1,24 @@
+package org.dromara.hotel.api.service;
+
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.domain.model.ErrorInfo;
+import org.dromara.hotel.api.domain.bo.RemoteCardDataBo;
+
+/**
+ * @ClassName RemoteCardDataService
+ * @Description 酒店系统门锁发卡远程服务接口
+ * @Author luoyibo
+ * @Date 2024-11-12 12:40
+ * @Version 1.0
+ * @since jdk17
+ */
+public interface RemoteCardDataService {
+
+    /**
+     * 增加发卡数据
+     * @param remoteBo 发卡业务对象
+     * @return 发卡结果
+     */
+    R<ErrorInfo> insertCardDataByBo(RemoteCardDataBo remoteBo);
+}
+

+ 7 - 6
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/domain/KfProvideCardHis.java

@@ -1,13 +1,14 @@
 package org.dromara.hotel.domain;
 
-import org.dromara.common.tenant.core.TenantEntity;
-import com.baomidou.mybatisplus.annotation.*;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.common.tenant.core.TenantEntity;
 
 import java.io.Serial;
+import java.util.Date;
 
 /**
  * 发卡记录对象 t_kf_provide_card_his
@@ -72,12 +73,12 @@ public class KfProvideCardHis extends TenantEntity {
     /**
      * 回收时间
      */
-    private Date cecycleTime;
+    private Date recycleTime;
 
     /**
      * 卡片状态(1:正常;0:回收)
      */
-    private String catdStatus;
+    private String cardStatus;
 
     /**
      * 备注(记录房卡权限范围)

+ 9 - 18
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/domain/bo/KfProvideCardHisBo.java

@@ -1,15 +1,16 @@
 package org.dromara.hotel.domain.bo;
 
-import org.dromara.hotel.domain.KfProvideCardHis;
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
 import io.github.linpeilie.annotations.AutoMapper;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
-import jakarta.validation.constraints.*;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.hotel.domain.KfProvideCardHis;
+
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
 /**
  * 发卡记录业务对象 t_kf_provide_card_his
@@ -25,13 +26,11 @@ public class KfProvideCardHisBo extends BaseEntity {
     /**
      * 主键
      */
-    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
     private Long id;
 
     /**
      * 卡片ID
      */
-    @NotNull(message = "卡片ID不能为空", groups = { AddGroup.class, EditGroup.class })
     private Long cardId;
 
     /**
@@ -52,15 +51,9 @@ public class KfProvideCardHisBo extends BaseEntity {
     @NotBlank(message = "房间编号不能为空", groups = { AddGroup.class, EditGroup.class })
     private String roomCode;
 
-    /**
-     * 持卡人ID
-     */
     @NotNull(message = "持卡人ID不能为空", groups = { AddGroup.class, EditGroup.class })
     private Long masterId;
 
-    /**
-     * 持卡人
-     */
     @NotBlank(message = "持卡人不能为空", groups = { AddGroup.class, EditGroup.class })
     private String masterName;
 
@@ -79,19 +72,17 @@ public class KfProvideCardHisBo extends BaseEntity {
     /**
      * 回收时间
      */
-    @NotNull(message = "回收时间不能为空", groups = { AddGroup.class, EditGroup.class })
-    private Date cecycleTime;
+    private Date recycleTime;
 
     /**
      * 卡片状态(1:正常;0:回收)
      */
     @NotBlank(message = "卡片状态(1:正常;0:回收)不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String catdStatus;
+    private String cardStatus;
 
     /**
      * 备注(记录房卡权限范围)
      */
-    @NotBlank(message = "备注(记录房卡权限范围)不能为空", groups = { AddGroup.class, EditGroup.class })
     private String remark;
 
 

+ 17 - 0
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/domain/convert/RemoteCardDataBoConvert.java

@@ -0,0 +1,17 @@
+package org.dromara.hotel.domain.convert;
+
+import io.github.linpeilie.BaseMapper;
+import org.dromara.hotel.api.domain.bo.RemoteCardDataBo;
+import org.dromara.hotel.domain.bo.KfProvideCardHisBo;
+import org.mapstruct.Mapper;
+import org.mapstruct.MappingConstants;
+import org.mapstruct.ReportingPolicy;
+
+/**
+ * 客房团客信息转换器
+ * @author zhujie
+ */
+@Mapper(componentModel = MappingConstants.ComponentModel.SPRING, unmappedTargetPolicy = ReportingPolicy.IGNORE)
+public interface RemoteCardDataBoConvert extends BaseMapper<RemoteCardDataBo, KfProvideCardHisBo> {
+
+}

+ 3 - 7
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/domain/vo/KfProvideCardHisVo.java

@@ -1,14 +1,10 @@
 package org.dromara.hotel.domain.vo;
 
-import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.dromara.hotel.domain.KfProvideCardHis;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
+import org.dromara.hotel.domain.KfProvideCardHis;
 
 import java.io.Serial;
 import java.io.Serializable;
@@ -88,13 +84,13 @@ public class KfProvideCardHisVo implements Serializable {
      * 回收时间
      */
     @ExcelProperty(value = "回收时间")
-    private Date cecycleTime;
+    private Date recycleTime;
 
     /**
      * 卡片状态(1:正常;0:回收)
      */
     @ExcelProperty(value = "卡片状态(1:正常;0:回收)")
-    private String catdStatus;
+    private String cardStatus;
 
     /**
      * 备注(记录房卡权限范围)

+ 48 - 0
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/dubbo/RemoteCardDataServiceImpl.java

@@ -0,0 +1,48 @@
+package org.dromara.hotel.dubbo;
+
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboService;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.domain.model.ErrorInfo;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.json.utils.JsonUtils;
+import org.dromara.hotel.api.domain.bo.RemoteCardDataBo;
+import org.dromara.hotel.api.service.RemoteCardDataService;
+import org.dromara.hotel.domain.bo.KfProvideCardHisBo;
+import org.dromara.hotel.service.IKfProvideCardHisService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @ClassName RemoteLockPowerServiceImpl
+ * @Description 酒店门锁电量远程服务实现
+ * @Author luoyibo
+ * @Date 2024-11-14 20:31
+ * @Version 1.0
+ * @since jdk17
+ */
+
+@Slf4j
+@Service
+@DubboService
+@RequiredArgsConstructor
+public class RemoteCardDataServiceImpl implements RemoteCardDataService {
+    private final IKfProvideCardHisService cardHisService;
+
+    @Override
+    public R<ErrorInfo> insertCardDataByBo(RemoteCardDataBo remoteBo) {
+        try {
+            KfProvideCardHisBo bo = MapstructUtils.convert(remoteBo, KfProvideCardHisBo.class);
+            if (bo != null) {
+                boolean flag = cardHisService.insertByBo(bo);
+                if (flag) {
+                    return R.ok("增加发卡数据成功");
+                }
+            }
+            return R.fail("增加发卡数据失败");
+        } catch (Exception e) {
+            log.error("增加发卡数据失败-{}-{}", JsonUtils.toJsonString(remoteBo), e.getMessage());
+            return R.fail("增加发卡数据失败");
+        }
+    }
+}

+ 4 - 4
ruoyi-modules/ruoyi-hotel/src/main/java/org/dromara/hotel/service/impl/KfProvideCardHisServiceImpl.java

@@ -80,8 +80,8 @@ public class KfProvideCardHisServiceImpl implements IKfProvideCardHisService {
         lqw.like(StringUtils.isNotBlank(bo.getMasterName()), KfProvideCardHis::getMasterName, bo.getMasterName());
         lqw.eq(bo.getStartTime() != null, KfProvideCardHis::getStartTime, bo.getStartTime());
         lqw.eq(bo.getEndTime() != null, KfProvideCardHis::getEndTime, bo.getEndTime());
-        lqw.eq(bo.getCecycleTime() != null, KfProvideCardHis::getCecycleTime, bo.getCecycleTime());
-        lqw.eq(StringUtils.isNotBlank(bo.getCatdStatus()), KfProvideCardHis::getCatdStatus, bo.getCatdStatus());
+        lqw.eq(bo.getRecycleTime() != null, KfProvideCardHis::getRecycleTime, bo.getRecycleTime());
+        lqw.eq(StringUtils.isNotBlank(bo.getCardStatus()), KfProvideCardHis::getCardStatus, bo.getCardStatus());
         return lqw;
     }
 
@@ -99,8 +99,8 @@ public class KfProvideCardHisServiceImpl implements IKfProvideCardHisService {
         lqw.like(StringUtils.isNotBlank(bo.getMasterName()), columnPrefix+"master_name", bo.getMasterName());
         lqw.eq(bo.getStartTime() != null, columnPrefix+"start_time", bo.getStartTime());
         lqw.eq(bo.getEndTime() != null, columnPrefix+"end_time", bo.getEndTime());
-        lqw.eq(bo.getCecycleTime() != null, columnPrefix+"cecycle_time", bo.getCecycleTime());
-        lqw.eq(StringUtils.isNotBlank(bo.getCatdStatus()), columnPrefix+"catd_status", bo.getCatdStatus());
+        lqw.eq(bo.getRecycleTime() != null, columnPrefix+"cecycle_time", bo.getRecycleTime());
+        lqw.eq(StringUtils.isNotBlank(bo.getCardStatus()), columnPrefix+"catd_status", bo.getCardStatus());
         return lqw;
     }
 

+ 2 - 2
ruoyi-modules/ruoyi-hotel/src/main/resources/mapper/hotel/basics/KfProvideCardHisMapper.xml

@@ -14,8 +14,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <result property="masterName"    column="master_name"    />
             <result property="startTime"    column="start_time"    />
             <result property="endTime"    column="end_time"    />
-            <result property="cecycleTime"    column="cecycle_time"    />
-            <result property="catdStatus"    column="catd_status"    />
+            <result property="recycleTime"    column="recycle_time"    />
+            <result property="cardStatus"    column="card_status"    />
             <result property="remark"    column="remark"    />
             <result property="createBy"    column="create_by"    />
             <result property="createTime"    column="create_time"    />