From 7a1097927675a40a21260c3fdbeb4a8106591b66 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 18 Apr 2025 19:38:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BA=BA=E5=B7=A5=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_hardware.sql | 38 ++++++++++--------- .../hard/api/dto/HardAuthErrorChangeDto.java | 27 +++++++++++++ .../hard/api/entity/HardAuthEntity.java | 14 ++++++- .../pjcloud/hard/api/vo/HardDoorFlowVo.java | 3 ++ .../hard/controller/HardAuthController.java | 15 ++++++-- .../pjcloud/hard/service/HardAuthService.java | 6 +++ .../service/impl/HardAuthServiceImpl.java | 34 ++++++++++++++--- .../service/impl/HardDoorFlowServiceImpl.java | 5 +++ .../service/impl/spu/HardSpuServiceImpl.java | 4 +- 9 files changed, 116 insertions(+), 30 deletions(-) create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardAuthErrorChangeDto.java diff --git a/db/800pjcloudx_hardware.sql b/db/800pjcloudx_hardware.sql index 1b4921528..ee418ebb7 100644 --- a/db/800pjcloudx_hardware.sql +++ b/db/800pjcloudx_hardware.sql @@ -373,24 +373,26 @@ CREATE TABLE hard_broadcast DROP TABLE IF EXISTS hard_auth; CREATE TABLE hard_auth ( - id bigint NOT NULL AUTO_INCREMENT COMMENT '编号', - auth_type varchar(32) DEFAULT NULL COMMENT '授权类型如微信小程序、支付宝、浙政钉', - user_id bigint NOT NULL COMMENT '预定用户', - hard_id bigint NOT NULL COMMENT '硬件id', - cabinet_no int DEFAULT NULL COMMENT '货柜编号', - auth_status char(1) DEFAULT '0' COMMENT '是否授权', - auth_time datetime DEFAULT NULL COMMENT '授权时间', - is_done char(1) DEFAULT '0' COMMENT '是否完成', - is_done_time datetime DEFAULT NULL COMMENT '完成时间', - is_manual_change varchar(32) DEFAULT NULL COMMENT '是否人工处理', - manual_change_time datetime DEFAULT NULL COMMENT '人工处理时间', - manual_change_remark varchar(512) DEFAULT NULL COMMENT '人工处理备注', - 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 '修改人', - update_time datetime DEFAULT NULL COMMENT '修改时间', - del_flag char(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标记', - tenant_id bigint DEFAULT NULL COMMENT '租户ID', + id bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + auth_type varchar(32) DEFAULT NULL COMMENT '授权类型如微信小程序、支付宝、浙政钉', + user_id bigint NOT NULL COMMENT '预定用户', + hard_id bigint NOT NULL COMMENT '硬件id', + cabinet_no int DEFAULT NULL COMMENT '货柜编号', + auth_status char(1) DEFAULT '0' COMMENT '是否授权', + auth_time datetime DEFAULT NULL COMMENT '授权时间', + is_done char(1) DEFAULT '0' COMMENT '是否完成', + is_done_time datetime DEFAULT NULL COMMENT '完成时间', + is_manual_change varchar(32) DEFAULT NULL COMMENT '是否人工处理', + manual_change_user_id bigint DEFAULT NULL COMMENT '人工处理用户id', + manual_change_time datetime DEFAULT NULL COMMENT '人工处理时间', + manual_change_remark varchar(128) DEFAULT NULL COMMENT '人工处理备注', + manual_change_pic varchar(512) DEFAULT NULL COMMENT '人工处理图片', + 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 '修改人', + update_time datetime DEFAULT NULL COMMENT '修改时间', + del_flag char(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标记', + tenant_id bigint DEFAULT NULL COMMENT '租户ID', PRIMARY KEY (id) ) ENGINE = InnoDB COMMENT ='硬件授权'; diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardAuthErrorChangeDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardAuthErrorChangeDto.java new file mode 100644 index 000000000..f69710708 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardAuthErrorChangeDto.java @@ -0,0 +1,27 @@ +package com.bsd.pjcloud.hard.api.dto; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Data +public class HardAuthErrorChangeDto { + + /** + * 流程id + */ + @NotNull(message = "流程id不能为空") + private Long flowId; + + /** + * 处理图片 + */ + private String image; + + /** + * 处理原因 + */ + @NotEmpty(message = "请输入处理原因") + private String remark; + +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardAuthEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardAuthEntity.java index b043e4801..30d6454c1 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardAuthEntity.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardAuthEntity.java @@ -83,6 +83,12 @@ public class HardAuthEntity extends Model { @Schema(description = "是否人工处理") private String isManualChange; + /** + * 人工处理用户id + */ + @Schema(description = "人工处理用户id") + private Long manualChangeUserId; + /** * 人工处理时间 */ @@ -92,9 +98,15 @@ public class HardAuthEntity extends Model { /** * 人工处理备注 */ - @Schema(description = "人工处理时间") + @Schema(description = "人工处理备注") private String manualChangeRemark; + /** + * 人工处理图片 + */ + @Schema(description = "人工处理图片") + private String manualChangePic; + /** * 创建人 */ diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardDoorFlowVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardDoorFlowVo.java index 581280235..ec71266bb 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardDoorFlowVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardDoorFlowVo.java @@ -1,6 +1,7 @@ package com.bsd.pjcloud.hard.api.vo; import com.bsd.pjcloud.admin.api.vo.base.BaseUserDeptInterface; +import com.bsd.pjcloud.hard.api.entity.HardAuthEntity; import com.bsd.pjcloud.hard.api.entity.HardDoorFlowEntity; import com.bsd.pjcloud.hard.api.vo.base.BaseHardInterface; import lombok.Data; @@ -32,5 +33,7 @@ public class HardDoorFlowVo extends HardDoorFlowEntity implements BaseHardInterf private String userDeptName; + private HardAuthEntity hardAuth; + } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardAuthController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardAuthController.java index 174e75f38..05b7fbe0b 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardAuthController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardAuthController.java @@ -6,12 +6,11 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.common.idempotent.annotation.Idempotent; 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.dto.HardAuthAppDto; -import com.bsd.pjcloud.hard.api.dto.HardAuthDto; -import com.bsd.pjcloud.hard.api.dto.HardGetAuthAppDto; +import com.bsd.pjcloud.hard.api.dto.*; import com.bsd.pjcloud.hard.api.entity.HardAuthEntity; import com.bsd.pjcloud.hard.api.vo.HardAuthVo; import com.bsd.pjcloud.hard.api.vo.HardGetAuthAppVo; @@ -25,6 +24,7 @@ import org.springframework.http.HttpHeaders; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -61,6 +61,15 @@ public class HardAuthController { /* ************************************* end app end ************************************* */ + @Operation(summary = "流程错误手动处理", description = "流程错误手动处理") + @PostMapping("/error-change") + @Idempotent(expireTime = 5, info = "正在开门中,请勿重复操作") + public R errorChange(@Validated @RequestBody HardAuthErrorChangeDto dto) { + PjcloudUser user = SecurityUtils.getUser(); + hardAuthService.errorChange(dto, user.getId()); + return R.ok(); + } + @Operation(summary = "分页查询", description = "分页查询") @GetMapping("/page-join") @PreAuthorize("@pms.hasPermission('hard_hardAuth_view')") diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAuthService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAuthService.java index fc8237ff6..bd5b661e9 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAuthService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardAuthService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.hard.api.dto.HardAuthAppDto; import com.bsd.pjcloud.hard.api.dto.HardAuthDto; +import com.bsd.pjcloud.hard.api.dto.HardAuthErrorChangeDto; import com.bsd.pjcloud.hard.api.dto.HardGetAuthAppDto; import com.bsd.pjcloud.hard.api.entity.HardAuthEntity; import com.bsd.pjcloud.hard.api.vo.HardAuthVo; @@ -29,4 +30,9 @@ public interface HardAuthService extends IService { * 判断当前用户信誉 */ boolean judgeUserCredit(Long userId); + + /** + * 流程错误手动处理 + */ + void errorChange(HardAuthErrorChangeDto dto, Long userId); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardAuthServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardAuthServiceImpl.java index 24a5601d3..d51fba8ad 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardAuthServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardAuthServiceImpl.java @@ -14,26 +14,25 @@ import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.hard.api.constant.HardAuthTypeEnum; import com.bsd.pjcloud.hard.api.constant.flow.HardDoorFlowBizEnum; import com.bsd.pjcloud.hard.api.constant.HardDoorOpenTypeEnum; -import com.bsd.pjcloud.hard.api.dto.HardAuthAppDto; -import com.bsd.pjcloud.hard.api.dto.HardAuthDto; -import com.bsd.pjcloud.hard.api.dto.HardDoorFlowOpenDto; -import com.bsd.pjcloud.hard.api.dto.HardGetAuthAppDto; +import com.bsd.pjcloud.hard.api.dto.*; import com.bsd.pjcloud.hard.api.dto.manager.HardManagerDto; import com.bsd.pjcloud.hard.api.entity.HardAuthEntity; +import com.bsd.pjcloud.hard.api.entity.HardDoorFlowEntity; import com.bsd.pjcloud.hard.api.entity.manager.HardManagerEntity; import com.bsd.pjcloud.hard.api.utils.HardUtil; import com.bsd.pjcloud.hard.api.vo.HardAuthVo; import com.bsd.pjcloud.hard.api.vo.HardGetAuthAppVo; import com.bsd.pjcloud.hard.api.vo.manager.HardDoorManagerVo; import com.bsd.pjcloud.hard.mapper.HardAuthMapper; -import com.bsd.pjcloud.hard.mapper.manager.HardDoorManagerMapper; import com.bsd.pjcloud.hard.mapper.manager.HardManagerMapper; import com.bsd.pjcloud.hard.service.HardAuthService; import com.bsd.pjcloud.hard.service.HardDoorFlowService; import com.bsd.pjcloud.hard.service.HardDoorManagerService; +import com.bsd.pjcloud.hard.service.HardOrderService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import java.time.LocalDateTime; @@ -51,9 +50,9 @@ public class HardAuthServiceImpl extends ServiceImpl list, HardAuthDto dto) { if (ObjectUtil.isEmpty(list)) return; // 设备 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 4ec1d2a71..e31b477f0 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 @@ -518,6 +518,11 @@ public class HardDoorFlowServiceImpl extends ServiceImpl