diff --git a/db/800pjcloudx_hardware.sql b/db/800pjcloudx_hardware.sql index e126ffc1b..fab9408b7 100644 --- a/db/800pjcloudx_hardware.sql +++ b/db/800pjcloudx_hardware.sql @@ -82,19 +82,29 @@ CREATE TABLE hard_door_flow biz_type varchar(32) NOT NULL COMMENT '业务类型', order_id bigint DEFAULT NULL COMMENT '订单编号', auth_id bigint DEFAULT NULL COMMENT '授权编号', - open_event_id varchar(32) DEFAULT NULL COMMENT '开门事件编号', - open_out_open_no varchar(32) DEFAULT NULL COMMENT '商户自定义开门请求号', + # 请求开门 + request_open_dto varchar(512) DEFAULT NULL COMMENT '请求开门参数', + request_open_vo varchar(512) DEFAULT NULL COMMENT '请求开门返回', request_open_time datetime DEFAULT NULL COMMENT '请求开门时间', - open_callback_res varchar(512) DEFAULT NULL COMMENT '开门回调结果', + # 请求开门回调 + is_open varchar(32) DEFAULT NULL COMMENT '是否开门', open_callback_time datetime DEFAULT NULL COMMENT '开门回调时间', - video_callback_res varchar(512) DEFAULT NULL COMMENT '视频回调结果', + open_callback_vo varchar(512) DEFAULT NULL COMMENT '开门回调结果', + # 视频回调 + video_callback_vo varchar(512) DEFAULT NULL COMMENT '视频回调结果', video_callback_time datetime DEFAULT NULL COMMENT '视频回调时间', - sku_ks_recog_id varchar(32) DEFAULT NULL COMMENT '识别任务唯一ID,用于结果获取,重新发起售后识别', + # sku识别 + sku_submit_dto varchar(512) DEFAULT NULL COMMENT 'sku识别提交参数', + sku_submit_vo varchar(512) DEFAULT NULL COMMENT 'sku识别提交结果', sku_submit_time datetime DEFAULT NULL COMMENT 'sku识别提交时间', - sku_callback_res varchar(512) DEFAULT NULL COMMENT 'sku识别回调结果', + # sku识别回调 + sku_callback_vo varchar(512) DEFAULT NULL COMMENT 'sku识别回调结果', sku_callback_time datetime DEFAULT NULL COMMENT 'sku识别回调时间', - sku_driving_res varchar(512) DEFAULT NULL COMMENT 'sku识别主动获取结果', + # sku主动获取 + sku_driving_dto varchar(512) DEFAULT NULL COMMENT 'sku识别主动获取参数', + sku_driving_vo varchar(512) DEFAULT NULL COMMENT 'sku识别主动获取结果', sku_driving_time datetime DEFAULT NULL COMMENT 'sku识别主动获取时间', + # 其他字段 create_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', create_time datetime DEFAULT NULL COMMENT '创建时间', update_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人', diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardDoorOpenTypeEnum.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardDoorOpenTypeEnum.java new file mode 100644 index 000000000..eca1fc93f --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardDoorOpenTypeEnum.java @@ -0,0 +1,26 @@ +package com.bsd.pjcloud.hard.api.constant; + +import cn.hutool.core.util.ObjectUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 开门类型 + */ +@AllArgsConstructor +@Getter +public enum HardDoorOpenTypeEnum { + RECORD_VIDEO("1", "录制视频"), + NO_RECORD_VIDEO("4", "不录制视频"), + MAINTENANCE_UNLOCK("5", "检修开锁"), + MAINTENANCE_LOCK("6", "检修关锁");; + private final String type; + private final String description; + + public static HardDoorOpenTypeEnum valueOfByType(String type) { + if (ObjectUtil.isEmpty(type)) return null; + return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get(); + } +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardDoorFlowOpenDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardDoorFlowOpenDto.java index d79a84b12..142e84517 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardDoorFlowOpenDto.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardDoorFlowOpenDto.java @@ -1,6 +1,7 @@ package com.bsd.pjcloud.hard.api.dto; import com.bsd.pjcloud.hard.api.constant.HardDoorFlowEnum; +import com.bsd.pjcloud.hard.api.constant.HardDoorOpenTypeEnum; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; @@ -20,10 +21,15 @@ public class HardDoorFlowOpenDto { @NotEmpty(message = "货柜编号不能为空") private String cabinetNo; + /** + * 流程类型 + */ + private HardDoorFlowEnum flowType; + /** * 开门操作类型 */ - private HardDoorFlowEnum type; + private HardDoorOpenTypeEnum openType; /** * 开门用户id diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardDoorFlowEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardDoorFlowEntity.java index c98908148..045e7223a 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardDoorFlowEntity.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardDoorFlowEntity.java @@ -24,7 +24,6 @@ import java.time.LocalDateTime; @Schema(description = "智能柜流程") public class HardDoorFlowEntity extends Model { - /** * 编号 */ @@ -57,16 +56,16 @@ public class HardDoorFlowEntity extends Model { private Long authId; /** - * 开门事件编号 + * 请求开门参数 */ - @Schema(description = "开门事件编号") - private String openEventId; + @Schema(description = "请求开门参数") + private String requestOpenDto; /** - * 商户自定义开门请求号 + * 请求开门返回 */ - @Schema(description = "商户自定义开门请求号") - private String openOutOpenNo; + @Schema(description = "请求开门返回") + private String requestOpenVo; /** * 请求开门时间 @@ -75,10 +74,10 @@ public class HardDoorFlowEntity extends Model { private LocalDateTime requestOpenTime; /** - * 开门回调结果 + * 是否开门 */ - @Schema(description = "开门回调结果") - private String openCallbackRes; + @Schema(description = "是否开门") + private String isOpen; /** * 开门回调时间 @@ -86,11 +85,17 @@ public class HardDoorFlowEntity extends Model { @Schema(description = "开门回调时间") private LocalDateTime openCallbackTime; + /** + * 开门回调结果 + */ + @Schema(description = "开门回调结果") + private String openCallbackVo; + /** * 视频回调结果 */ @Schema(description = "视频回调结果") - private String videoCallbackRes; + private String videoCallbackVo; /** * 视频回调时间 @@ -99,10 +104,16 @@ public class HardDoorFlowEntity extends Model { private LocalDateTime videoCallbackTime; /** - * 识别任务唯一ID,用于结果获取,重新发起售后识别 + * sku识别提交参数 */ - @Schema(description = "识别任务唯一ID,用于结果获取,重新发起售后识别") - private String skuKsRecogId; + @Schema(description = "sku识别提交参数") + private String skuSubmitDto; + + /** + * sku识别提交结果 + */ + @Schema(description = "sku识别提交结果") + private String skuSubmitVo; /** * sku识别提交时间 @@ -114,7 +125,7 @@ public class HardDoorFlowEntity extends Model { * sku识别回调结果 */ @Schema(description = "sku识别回调结果") - private String skuCallbackRes; + private String skuCallbackVo; /** * sku识别回调时间 @@ -122,11 +133,17 @@ public class HardDoorFlowEntity extends Model { @Schema(description = "sku识别回调时间") private LocalDateTime skuCallbackTime; + /** + * sku识别主动获取参数 + */ + @Schema(description = "sku识别主动获取参数") + private String skuDrivingDto; + /** * sku识别主动获取结果 */ @Schema(description = "sku识别主动获取结果") - private String skuDrivingRes; + private String skuDrivingVo; /** * sku识别主动获取时间 diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardDoorFlowController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardDoorFlowController.java index 38e8f9b56..d80b2ea66 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardDoorFlowController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardDoorFlowController.java @@ -10,6 +10,7 @@ import com.bsd.pjcloud.common.log.annotation.SysLog; import com.bsd.pjcloud.common.security.service.PjcloudUser; import com.bsd.pjcloud.common.security.util.SecurityUtils; import com.bsd.pjcloud.hard.api.constant.HardDoorFlowEnum; +import com.bsd.pjcloud.hard.api.constant.HardDoorOpenTypeEnum; import com.bsd.pjcloud.hard.api.dto.HardDoorFlowOpenDto; import com.bsd.pjcloud.hard.api.entity.HardDoorFlowEntity; import com.bsd.pjcloud.hard.service.HardDoorFlowService; @@ -48,7 +49,8 @@ public class HardDoorFlowController { @PostMapping("/open-access") public R openAccess(@Validated @RequestBody HardDoorFlowOpenDto dto) { PjcloudUser user = SecurityUtils.getUser(); - dto.setType(HardDoorFlowEnum.ACCESS_OPEN); + dto.setFlowType(HardDoorFlowEnum.ACCESS_OPEN); + dto.setOpenType(HardDoorOpenTypeEnum.MAINTENANCE_UNLOCK); dto.setUserId(user.getId()); hardDoorFlowService.openDoorAccess(dto); return R.ok(); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardDoorFlowServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardDoorFlowServiceImpl.java index 3e25019f5..04e0b63e4 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardDoorFlowServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardDoorFlowServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.extra.spring.SpringUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum; import com.bsd.pjcloud.hard.api.dto.HardDoorFlowOpenDto; import com.bsd.pjcloud.hard.api.entity.HardDoorFlowEntity; import com.bsd.pjcloud.hard.api.vo.manager.HardDoorManagerVo; @@ -43,16 +44,19 @@ public class HardDoorFlowServiceImpl extends ServiceImpl