diff --git a/db/800pjcloudx_hardware.sql b/db/800pjcloudx_hardware.sql index e050e7d03..b6edc26dd 100644 --- a/db/800pjcloudx_hardware.sql +++ b/db/800pjcloudx_hardware.sql @@ -367,30 +367,52 @@ CREATE TABLE hard_broadcast PRIMARY KEY (id) ) ENGINE = InnoDB COMMENT ='设备广播'; + +DROP TABLE IF EXISTS hard_appt; +CREATE TABLE hard_appt +( + id bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + title varchar(64) NOT NULL COMMENT '标题', + start_time time DEFAULT NULL COMMENT '开始时间', + end_time time DEFAULT NULL COMMENT '结束时间', + sort int DEFAULT 0 NOT NULL COMMENT '排序', + status varchar(32) NOT NULL COMMENT '状态', + remark varchar(256) 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 ='设备预约管理'; + -- ---------------------------- -- Table structure for hard_auth -- ---------------------------- 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 ='硬件授权'; @@ -444,6 +466,9 @@ CREATE TABLE hard_spu_join cabinet_no varchar(32) DEFAULT NULL COMMENT '货柜编号', spu_id bigint DEFAULT NULL COMMENT '商品id', hard_door_number int DEFAULT NULL COMMENT '商品放置层数', + version bigint DEFAULT 0 COMMENT '乐观锁', + sales_count bigint DEFAULT 0 COMMENT '销量', + repertory_count bigint NOT NULL DEFAULT 0 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 '修改人', @@ -481,6 +506,8 @@ CREATE TABLE hard_spu_repertory ( id bigint NOT NULL AUTO_INCREMENT COMMENT '编号', user_id bigint NOT NULL COMMENT '用户id', + hard_door_id bigint NOT NULL COMMENT '智能柜编号', + cabinet_no int NOT NULL COMMENT '货柜编号(1,2)', spu_id bigint NOT NULL COMMENT '商品id', before_count int NOT NULL COMMENT '更新前的库存数量', count int DEFAULT 0 COMMENT '更新库存数量', diff --git a/db/800pjcloudx_wallet.sql b/db/800pjcloudx_wallet.sql index ac38462b1..292582a18 100644 --- a/db/800pjcloudx_wallet.sql +++ b/db/800pjcloudx_wallet.sql @@ -1,5 +1,35 @@ create database `pjcloudx_wallet` default character set utf8mb4 collate utf8mb4_general_ci; +-- ---------------------------- +-- Table structure for sys_user_transaction +-- ---------------------------- +DROP TABLE IF EXISTS sys_user_transaction; +CREATE TABLE `sys_user_transaction` +( + id bigint NOT NULL COMMENT '编号', + user_id bigint NOT NULL COMMENT '用户id', + biz_id bigint DEFAULT NULL COMMENT '业务id', + biz_type varchar(32) NOT NULL COMMENT '业务类型', + # 岗位调动字段 + source_dept_id bigint DEFAULT NULL COMMENT '源部门id', + target_dept_id bigint DEFAULT NULL COMMENT '目标部门id', + # 离职字段 + is_wallet_transaction varchar(32) DEFAULT NULL COMMENT '是否离职自动转账', + wallet_transaction_time datetime DEFAULT NULL COMMENT '离职自动转账时间', + # 审批字读 + process_id varchar(256) DEFAULT NULL COMMENT '流程id', + process_status varchar(10) DEFAULT NULL COMMENT '审核状体', + process_time datetime 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 + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci COMMENT ='人员调动表'; -- ---------------------------- -- Table structure for sys_user_face diff --git a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CommonRoleConstant.java b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CommonRoleConstant.java index e7277790c..56ab8e244 100644 --- a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CommonRoleConstant.java +++ b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CommonRoleConstant.java @@ -32,4 +32,7 @@ public interface CommonRoleConstant { // 商户角色 String MCH_USER = "MCH_USER"; + // 智能柜管理员 + String HARD_DOOR_ADMIN_USER = "HARD_DOOR_ADMIN"; + } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardOrderStatusEnum.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardOrderStatusEnum.java index dead384ac..f4a70ed82 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardOrderStatusEnum.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/order/HardOrderStatusEnum.java @@ -19,7 +19,7 @@ public enum HardOrderStatusEnum { OFFLINE_PAY("6", "没有网络本地支付"), REFUND("10", "退款"), CANCEL("20", "已核销"), - UNFOLLOW("30", "已取消(智能柜使用)"), + UNFOLLOW("30", "已取消(智能柜)"), ; private final String type; private final String description; diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardApptDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardApptDto.java new file mode 100644 index 000000000..1725de8c0 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardApptDto.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.api.dto; + +import com.bsd.pjcloud.hard.api.entity.HardApptEntity; +import lombok.Data; + +@Data +public class HardApptDto extends HardApptEntity { +} 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/dto/manager/HardDoorCabinetDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/manager/HardDoorCabinetDto.java new file mode 100644 index 000000000..ce6dc3a63 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/manager/HardDoorCabinetDto.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.api.dto.manager; + +import com.bsd.pjcloud.hard.api.entity.manager.HardDoorCabinetEntity; +import lombok.Data; + +@Data +public class HardDoorCabinetDto extends HardDoorCabinetEntity { +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuRepertoryDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuRepertoryDto.java index 20a9290e5..94e3622fc 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuRepertoryDto.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/spu/HardSpuRepertoryDto.java @@ -13,4 +13,6 @@ public class HardSpuRepertoryDto extends HardSpuRepertoryEntity { private List userIds; + private Long cabinetId; + } diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardApptEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardApptEntity.java new file mode 100644 index 000000000..cb8e20eea --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardApptEntity.java @@ -0,0 +1,108 @@ +package com.bsd.pjcloud.hard.api.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.bsd.pjcloud.common.core.util.TenantTable; + +import java.time.LocalDateTime; +import java.time.LocalTime; + +/** + * 设备预约管理 + */ +@Data +@TenantTable +@TableName("hard_appt") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "设备预约管理") +public class HardApptEntity extends Model { + + + /** + * 编号 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description = "编号") + private Long id; + + /** + * 标题 + */ + @Schema(description = "标题") + private String title; + + /** + * 开始时间 + */ + @Schema(description = "开始时间") + private LocalTime startTime; + + /** + * 结束时间 + */ + @Schema(description = "结束时间") + private LocalTime endTime; + + /** + * 排序 + */ + @Schema(description = "排序") + private Integer sort; + + /** + * 状态 + */ + @Schema(description = "状态") + private String status; + + /** + * 备注 + */ + @Schema(description = "备注") + private String remark; + + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建人") + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建时间") + private LocalDateTime createTime; + + /** + * 修改人 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "修改人") + private String updateBy; + + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "修改时间") + private LocalDateTime updateTime; + + /** + * 删除标记 + */ + @TableLogic + @TableField(fill = FieldFill.INSERT) + @Schema(description = "删除标记") + private String delFlag; + + /** + * 租户ID + */ + @Schema(description = "租户ID") + private Long tenantId; +} \ No newline at end of file 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/entity/HardBroadcastEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardBroadcastEntity.java index 25a26116f..2c92d122f 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardBroadcastEntity.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardBroadcastEntity.java @@ -23,10 +23,10 @@ public class HardBroadcastEntity extends Model { /** - * 编号 + * 广播编号 */ @TableId(type = IdType.ASSIGN_ID) - @Schema(description = "编号") + @Schema(description = "广播编号") private Long id; /** diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuJoinEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuJoinEntity.java index efc49d8d2..98c411968 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuJoinEntity.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuJoinEntity.java @@ -51,6 +51,25 @@ public class HardSpuJoinEntity extends Model { @Schema(description = "放置层数") private Integer hardDoorNumber; + /** + * 乐观锁 + */ + @Version + private Integer version; + + /** + * 销量 + */ + @Schema(description = "销量") + private Integer salesCount; + + /** + * 库存 + */ + @Schema(description = "库存") + private Integer repertoryCount; + + /** * 创建人 */ diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuRepertoryEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuRepertoryEntity.java index ce612b977..3f4b199e1 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuRepertoryEntity.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/spu/HardSpuRepertoryEntity.java @@ -36,6 +36,19 @@ public class HardSpuRepertoryEntity extends Model { @Schema(description = "用户id") private Long userId; + /** + * 硬件柜子id + */ + @Schema(description = "硬件柜子id") + private Long hardDoorId; + + /** + * 柜门编号 + */ + @Schema(description = "柜门编号") + private Integer cabinetNo; + + /** * 商品id */ diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardApptVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardApptVo.java new file mode 100644 index 000000000..fa10aca6e --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardApptVo.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.api.vo; + +import com.bsd.pjcloud.hard.api.entity.HardApptEntity; +import lombok.Data; + +@Data +public class HardApptVo extends HardApptEntity { +} 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-api/src/main/java/com/bsd/pjcloud/hard/api/vo/manager/HardDoorCabinetVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/manager/HardDoorCabinetVo.java new file mode 100644 index 000000000..e19d15035 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/manager/HardDoorCabinetVo.java @@ -0,0 +1,23 @@ +package com.bsd.pjcloud.hard.api.vo.manager; + +import com.bsd.pjcloud.hard.api.entity.manager.HardDoorCabinetEntity; +import com.bsd.pjcloud.hard.api.vo.base.BaseHardInterface; +import lombok.Data; + +import java.util.List; + +@Data +public class HardDoorCabinetVo extends HardDoorCabinetEntity implements BaseHardInterface { + + /** + * 设备相关 + */ + private Long hardId; + + private String hardName; + + private String hardType; + + private String deviceCode; + +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuRepertoryVo.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuRepertoryVo.java index 15826858f..cfbe2fcb9 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuRepertoryVo.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/spu/HardSpuRepertoryVo.java @@ -2,11 +2,12 @@ package com.bsd.pjcloud.hard.api.vo.spu; import com.bsd.pjcloud.admin.api.vo.base.BaseUserInterface; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuRepertoryEntity; +import com.bsd.pjcloud.hard.api.vo.base.BaseHardInterface; import com.bsd.pjcloud.wallet.api.vo.base.BaseMchInterface; import lombok.Data; @Data -public class HardSpuRepertoryVo extends HardSpuRepertoryEntity implements BaseMchInterface, BaseUserInterface { +public class HardSpuRepertoryVo extends HardSpuRepertoryEntity implements BaseMchInterface, BaseUserInterface, BaseHardInterface { /** * 商品相关 @@ -42,5 +43,15 @@ public class HardSpuRepertoryVo extends HardSpuRepertoryEntity implements BaseMc private String userAvatar; + /** + * 设备相关 + */ + private Long hardId; + + private String hardName; + + private String hardType; + + private String deviceCode; } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardApptController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardApptController.java new file mode 100644 index 000000000..20b43bbc2 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardApptController.java @@ -0,0 +1,101 @@ +package com.bsd.pjcloud.hard.controller; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum; +import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.hard.api.entity.HardApptEntity; +import com.bsd.pjcloud.hard.service.HardApptService; +import org.springframework.security.access.prepost.PreAuthorize; +import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import org.springdoc.core.annotations.ParameterObject; +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.web.bind.annotation.*; + +import java.util.List; +import java.util.Objects; + +/** + * 设备预约管理 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/hard-appt") +@Tag(description = "hard-appt", name = "设备预约管理管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class HardApptController { + + private final HardApptService hardApptService; + + + /* ************************************* start app start ************************************* */ + + @Operation(summary = "app预约时间列表", description = "app预约时间列表") + @GetMapping("/app/list") + public R> appList() { + List list = hardApptService.list(new LambdaQueryWrapper() + .eq(HardApptEntity::getStatus, YesNoEnum.YES.getCode()) + .orderByDesc(HardApptEntity::getSort) + ); + return R.ok(list); + } + + /* ************************************* end app end ************************************* */ + + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('hard_hardAppt_view')") + public R getHardApptPage(@ParameterObject Page page, @ParameterObject HardApptEntity dto) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper() + .like(ObjectUtil.isNotEmpty(dto.getTitle()), HardApptEntity::getTitle, dto.getTitle()); + return R.ok(hardApptService.page(page, wrapper)); + } + + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('hard_hardAppt_view')") + public R getById(@PathVariable("id") Long id) { + return R.ok(hardApptService.getById(id)); + } + + @Operation(summary = "新增设备预约管理", description = "新增设备预约管理") + @SysLog("新增设备预约管理") + @PostMapping + @PreAuthorize("@pms.hasPermission('hard_hardAppt_add')") + public R save(@RequestBody HardApptEntity hardAppt) { + return R.ok(hardApptService.create(hardAppt)); + } + + @Operation(summary = "修改设备预约管理", description = "修改设备预约管理") + @SysLog("修改设备预约管理") + @PutMapping + @PreAuthorize("@pms.hasPermission('hard_hardAppt_edit')") + public R updateById(@RequestBody HardApptEntity hardAppt) { + return R.ok(hardApptService.edit(hardAppt)); + } + + @Operation(summary = "通过id删除设备预约管理", description = "通过id删除设备预约管理") + @SysLog("通过id删除设备预约管理") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('hard_hardAppt_del')") + public R removeById(@RequestBody Long[] ids) { + hardApptService.delByIds(CollUtil.toList(ids)); + return R.ok(); + } + + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('hard_hardAppt_export')") + public List export(HardApptEntity hardAppt, Long[] ids) { + return hardApptService.list(Wrappers.lambdaQuery(hardAppt).in(ArrayUtil.isNotEmpty(ids), HardApptEntity::getId, ids)); + } +} \ No newline at end of file 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/controller/HardDoorFlowController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardDoorFlowController.java index 4af5e79ca..3a39303cf 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 @@ -6,6 +6,7 @@ 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.annotation.Inner; import com.bsd.pjcloud.common.security.service.PjcloudUser; @@ -90,6 +91,7 @@ public class HardDoorFlowController { @Operation(summary = "上架开门", description = "上架开门") @PostMapping("/app/open-repertory") + @Idempotent(expireTime = 5, info = "正在开门中,请勿重复操作") public R openRepertory(@Validated @RequestBody HardDoorFlowOpenDto dto) { PjcloudUser user = SecurityUtils.getUser(); dto.setFlowType(HardDoorFlowBizEnum.REPERTORY_OPEN); @@ -98,10 +100,35 @@ public class HardDoorFlowController { return R.ok(hardDoorFlowService.openDoorRepertory(dto)); } + @Operation(summary = "app检修开门", description = "app检修开门") + @PostMapping("/app/open-access") + @Idempotent(expireTime = 5, info = "正在开门中,请勿重复操作") + public R appOpenAccess(@Validated @RequestBody HardDoorFlowOpenDto dto) { + PjcloudUser user = SecurityUtils.getUser(); + dto.setFlowType(HardDoorFlowBizEnum.ACCESS_OPEN); + dto.setOpenType(HardDoorOpenTypeEnum.MAINTENANCE_UNLOCK); + dto.setUserId(user.getId()); + hardDoorFlowService.openDoorAccess(dto); + return R.ok(); + } + + @Operation(summary = "app检修开门", description = "app检修开门") + @PostMapping("/app/close-access") + @Idempotent(expireTime = 5, info = "正在关门中,请勿重复操作") + public R appCloseAccess(@Validated @RequestBody HardDoorFlowOpenDto dto) { + PjcloudUser user = SecurityUtils.getUser(); + dto.setFlowType(HardDoorFlowBizEnum.ACCESS_OPEN); + dto.setOpenType(HardDoorOpenTypeEnum.MAINTENANCE_LOCK); + dto.setUserId(user.getId()); + hardDoorFlowService.closeAccess(dto); + return R.ok(); + } + /* ************************************* end app end ************************************* */ @Operation(summary = "检修开门", description = "检修开门") @PostMapping("/open-access") + @Idempotent(expireTime = 5, info = "正在开门中,请勿重复操作") public R openAccess(@Validated @RequestBody HardDoorFlowOpenDto dto) { PjcloudUser user = SecurityUtils.getUser(); dto.setFlowType(HardDoorFlowBizEnum.ACCESS_OPEN); @@ -113,6 +140,7 @@ public class HardDoorFlowController { @Operation(summary = "检修关门", description = "检修关门") @PostMapping("/close-access") + @Idempotent(expireTime = 5, info = "正在关门中,请勿重复操作") public R closeAccess(@Validated @RequestBody HardDoorFlowOpenDto dto) { PjcloudUser user = SecurityUtils.getUser(); dto.setFlowType(HardDoorFlowBizEnum.ACCESS_OPEN); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/manager/HardDoorManagerController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/manager/HardDoorManagerController.java index d82c03d22..9db6b6e2b 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/manager/HardDoorManagerController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/manager/HardDoorManagerController.java @@ -9,9 +9,12 @@ 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.log.annotation.SysLog; +import com.bsd.pjcloud.hard.api.dto.manager.HardDoorCabinetDto; import com.bsd.pjcloud.hard.api.dto.manager.HardDoorManagerDto; import com.bsd.pjcloud.hard.api.dto.spu.HardChangeVolume; +import com.bsd.pjcloud.hard.api.entity.manager.HardDoorCabinetEntity; import com.bsd.pjcloud.hard.api.entity.manager.HardDoorManagerEntity; +import com.bsd.pjcloud.hard.api.vo.manager.HardDoorCabinetVo; import com.bsd.pjcloud.hard.api.vo.manager.HardDoorManagerVo; import com.bsd.pjcloud.hard.service.HardDoorCabinetService; import com.bsd.pjcloud.hard.service.HardDoorManagerService; @@ -79,6 +82,12 @@ public class HardDoorManagerController { return R.ok(); } + @Operation(summary = "柜门下拉查询", description = "柜门下拉查询") + @GetMapping("/select-cabinet") + public R> selectCabinet(@ParameterObject Page page, @ParameterObject HardDoorCabinetDto dto) { + return R.ok(hardDoorManagerService.selectCabinet(page, dto)); + } + @Operation(summary = "分页查询", description = "分页查询") @GetMapping("/page") @PreAuthorize("@pms.hasPermission('hard_hardDoorManager_view')") @@ -106,7 +115,7 @@ public class HardDoorManagerController { @GetMapping("/get-by-hard-id") @PreAuthorize("@pms.hasPermission('hard_hardDoorManager_view')") public R getByHardId(@RequestParam Long hardId) { - return R.ok(hardDoorManagerService.getByHardDoorId(hardId)); + return R.ok(hardDoorManagerService.getByHardId(hardId)); } @Operation(summary = "通过id删除智能柜设置", description = "通过id删除智能柜设置") diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java index 948c2e7fd..e3394b183 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java @@ -66,7 +66,7 @@ public class HardOrderTotalController { /* ************************************* start app start ************************************* */ @Operation(summary = "app查询商户每天流水记录", description = "app查询订单列表根据权限") @GetMapping("/app/mch-water-day") - public R appMchTotal(@ParameterObject Page page, @ParameterObject HardOrderDto dto) { + public R appMchWaterDay(@ParameterObject Page page, @ParameterObject HardOrderDto dto) { PjcloudUser user = SecurityUtils.getUser(); // 查询用户部门 UserInfo userInfo = userService.getByUserId(user.getId()).getData(); @@ -85,6 +85,30 @@ public class HardOrderTotalController { dto.setMchIds(mchDtoIds); return R.ok(hardOrderTotalService.listCsByDay(page, dto, user)); } + + @Operation(summary = "app查询商户全部流水记录", description = "app查询商户全部流水记录") + @GetMapping("/app/mch-water-total") + public R appMchWaterTotal(@ParameterObject HardOrderDto dto) { + PjcloudUser user = SecurityUtils.getUser(); + // 查询用户部门 + UserInfo userInfo = userService.getByUserId(user.getId()).getData(); + dto.setIsFindCarList(false); + // 判断是否为合作超市管理员工 + if (!hardManagerService.isSuperMarketAdmin(user)) return R.ok(new Page()); + // 查询用户属于的商户 + MchManageVo mch = mchService.getFirstMchByDeptId(userInfo.getSysUser().getDeptId()).getData(); + if (ObjectUtil.isEmpty(mch)) throw new RuntimeException("该用户下不存在商户"); + List mchDtoIds = new ArrayList<>(List.of(mch.getId())); + // 查询商户和下面的子商户 + List mchList = mchService.getByParentId(mch.getId()).getData(); + // 查询子商户 + List mchIds = mchList.stream().map(MchManageVo::getId).toList(); + mchDtoIds.addAll(mchIds); + dto.setMchIds(mchDtoIds); + return R.ok(hardOrderTotalService.mchWaterTotal(dto, user)); + } + + /* ************************************* end app end ************************************* */ @PostMapping("/page-list-sb") diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java index e05999487..36fd5dda5 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuController.java @@ -7,6 +7,7 @@ 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.hard.api.dto.spu.HardPutawayDto; import com.bsd.pjcloud.hard.api.dto.spu.HardSpuDto; @@ -45,6 +46,7 @@ public class HardSpuController { @Operation(summary = "app上架", description = "上架") @PostMapping("/app/putaway") + @Idempotent(expireTime = 5, info = "正在上架中,请勿重复操作") public R appPutaway(@Valid @RequestBody HardPutawayDto dto) { hardSpuService.putaway(dto); return R.ok(); @@ -52,6 +54,7 @@ public class HardSpuController { @Operation(summary = "app下架", description = "下架") @PostMapping("/app/un-putaway") + @Idempotent(expireTime = 5, info = "正在下架中,请勿重复操作") public R appUnPutaway(@Valid @RequestBody HardPutawayDto dto) { hardSpuService.unPutaway(dto); return R.ok(); @@ -69,6 +72,13 @@ public class HardSpuController { return R.ok(hardSpuService.getByCabinetNo(hardId, cabinetNo)); } + @Operation(summary = "app商品类表", description = "app商品类表") + @GetMapping("/app/page") + public R appPage(@ParameterObject Page page, @ParameterObject HardSpuDto dto) { + DataScope dataScope = null; + return R.ok(hardSpuService.scopPageJoin(page, dto, dataScope)); + } + /* ************************************* end APP end ************************************* */ @Operation(summary = "拉取旷世商品", description = "拉取旷世商品") diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuRepertoryController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuRepertoryController.java index e8d4b5ba6..c8cd6846b 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuRepertoryController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/spu/HardSpuRepertoryController.java @@ -2,11 +2,13 @@ package com.bsd.pjcloud.hard.controller.spu; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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; @@ -44,6 +46,7 @@ public class HardSpuRepertoryController { @Operation(summary = "app上架完成", description = "app上架完成") @PostMapping("/app/repertory-done") + @Idempotent(expireTime = 5, info = "正在操作中,请勿重复操作") public R appRepertoryDone(@Valid @RequestBody DeductionSpuRepertoryDto body) { PjcloudUser user = SecurityUtils.getUser(); return R.ok(hardSpuRepertoryService.appRepertoryDone(body, user.getId())); @@ -78,9 +81,13 @@ public class HardSpuRepertoryController { @SysLog("新增硬件商品库存更新记录") @PostMapping @PreAuthorize("@pms.hasPermission('hard_hardSpuRepertory_add')") - public R save(@Validated @RequestBody HardSpuRepertoryEntity hardSpuRepertory) { + @Idempotent(expireTime = 5, info = "正在上架中,请勿重复操作") + public R save(@Validated @RequestBody HardSpuRepertoryDto dto) { + if (ObjectUtil.isEmpty(dto.getCabinetId())) { + return R.failed("请选择所属柜门"); + } PjcloudUser user = SecurityUtils.getUser(); - return R.ok(hardSpuRepertoryService.create(hardSpuRepertory, user)); + return R.ok(hardSpuRepertoryService.create(dto, user)); } @Operation(summary = "修改硬件商品库存更新记录", description = "修改硬件商品库存更新记录") diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardApptMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardApptMapper.java new file mode 100644 index 000000000..dda32c2d8 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardApptMapper.java @@ -0,0 +1,11 @@ +package com.bsd.pjcloud.hard.mapper; + +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.hard.api.entity.HardApptEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface HardApptMapper extends PjcloudBaseMapper { + + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/manager/HardDoorCabinetMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/manager/HardDoorCabinetMapper.java index 2ec2df75d..1ff0f4db9 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/manager/HardDoorCabinetMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/manager/HardDoorCabinetMapper.java @@ -1,11 +1,17 @@ package com.bsd.pjcloud.hard.mapper.manager; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.hard.api.dto.manager.HardDoorCabinetDto; import com.bsd.pjcloud.hard.api.entity.manager.HardDoorCabinetEntity; +import com.bsd.pjcloud.hard.api.vo.manager.HardDoorCabinetVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; @Mapper public interface HardDoorCabinetMapper extends PjcloudBaseMapper { + Page scopePageJoin(Page page, @Param("dto") HardDoorCabinetDto dto, DataScope dataScope); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/manager/HardDoorManagerMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/manager/HardDoorManagerMapper.java index 7623514eb..391543951 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/manager/HardDoorManagerMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/manager/HardDoorManagerMapper.java @@ -14,5 +14,7 @@ public interface HardDoorManagerMapper extends PjcloudBaseMapper scopePageJoin(Page page, @Param("dto") HardDoorManagerDto dto, DataScope dataScope); - HardDoorManagerVo pageJoin(@Param("hardId") Long hardId); + HardDoorManagerVo pageJoinByHardDoorId(@Param("hardDoorId") Long hardDoorId); + + HardDoorManagerVo pageJoinByHardId(@Param("hardId") Long hardId); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java index 12c06a4ba..20535d003 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java @@ -101,6 +101,8 @@ public interface HardOrderMapper extends PjcloudBaseMapper { List listCsByDay(@Param("dto") HardOrderDto totalDto); + HardOrderCsVo listCsTotal(@Param("dto") HardOrderDto totalDto); + List listOrerPayType(@Param("dto") HardOrderDto dto); List sumAndCount(@Param("dto") HardOrderSumAndCountDto dto); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardApptService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardApptService.java new file mode 100644 index 000000000..7abbc3128 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardApptService.java @@ -0,0 +1,24 @@ +package com.bsd.pjcloud.hard.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.hard.api.entity.HardApptEntity; + +import java.util.ArrayList; + +public interface HardApptService extends IService { + + /** + * 新增 + */ + Long create(HardApptEntity hardAppt); + + /** + * 修改 + */ + Long edit(HardApptEntity hardAppt); + + /** + * 删除 + */ + void delByIds(ArrayList list); +} \ No newline at end of file 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/HardBroadcastService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardBroadcastService.java index 929a1c0c9..240de46e7 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardBroadcastService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardBroadcastService.java @@ -2,6 +2,7 @@ package com.bsd.pjcloud.hard.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.admin.api.dto.UserInfo; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.hard.api.dto.HardBroadcastDto; import com.bsd.pjcloud.hard.api.entity.HardBroadcastEntity; @@ -15,7 +16,7 @@ public interface HardBroadcastService extends IService { /** * 添加线下食堂预约订单广播 */ - void addReserveOrderTask(HardOrderEntity orderdetail); + void addReserveOrderTask(HardOrderEntity orderdetail, UserInfo userInfo); /** * 完成硬件广播 diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorCabinetService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorCabinetService.java index aea015e21..f4aabea87 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorCabinetService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorCabinetService.java @@ -1,13 +1,19 @@ package com.bsd.pjcloud.hard.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.hard.api.dto.manager.HardDoorCabinetDto; import com.bsd.pjcloud.hard.api.entity.manager.HardDoorCabinetEntity; +import com.bsd.pjcloud.hard.api.vo.manager.HardDoorCabinetVo; import com.bsd.pjcloud.thirdparty.vo.door.DoorStatusVo; import java.util.List; public interface HardDoorCabinetService extends IService { + Page scopePageJoin(Page page, HardDoorCabinetDto dto, DataScope dataScope); + void saveOrUpdate(Long hardDoorId, List list); List getListByHardDoorId(Long hardDoorId); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorManagerService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorManagerService.java index 7dcc203e8..19292fb6f 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorManagerService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardDoorManagerService.java @@ -3,19 +3,31 @@ package com.bsd.pjcloud.hard.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.hard.api.dto.manager.HardDoorCabinetDto; import com.bsd.pjcloud.hard.api.dto.manager.HardDoorManagerDto; import com.bsd.pjcloud.hard.api.dto.spu.HardChangeVolume; import com.bsd.pjcloud.hard.api.entity.manager.HardDoorManagerEntity; +import com.bsd.pjcloud.hard.api.vo.manager.HardDoorCabinetVo; import com.bsd.pjcloud.hard.api.vo.manager.HardDoorManagerVo; public interface HardDoorManagerService extends IService { Page scopePageJoin(Page page, HardDoorManagerDto dto, DataScope dataScope); + /** + * 柜门下拉查询 + */ + Page selectCabinet(Page page, HardDoorCabinetDto dto); + + /** + * 根据智能硬件id查询详情 + */ + HardDoorManagerVo getByHardDoorId(Long hardDoorId); + /** * 根据硬件id查询详情 */ - HardDoorManagerVo getByHardDoorId(Long hardId); + HardDoorManagerVo getByHardId(Long hardId); /** * 根据硬件设备编号查询详情 diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java index be6a7b735..d1ef932a7 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java @@ -2,6 +2,7 @@ package com.bsd.pjcloud.hard.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.admin.api.dto.UserInfo; import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.security.service.PjcloudUser; @@ -92,5 +93,5 @@ public interface HardOrderService extends IService { /** * 创建订单后发送mq消息 */ - void createOrderAfterSendMqMsg(Long orderId); + void createOrderAfterSendMqMsg(Long orderId, UserInfo userInfo); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderTotalService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderTotalService.java index 3b48f3a85..fae9cbf87 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderTotalService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderTotalService.java @@ -26,6 +26,11 @@ public interface HardOrderTotalService { */ List listCsByDay(Page page, HardOrderDto dto, PjcloudUser user); + /** + * 查询商户总共流水记录 + */ + HardOrderCsVo mchWaterTotal(HardOrderDto dto, PjcloudUser user); + /** * 部门交易记录 */ @@ -45,4 +50,5 @@ public interface HardOrderTotalService { * 统计每天、每周、每月、每年的交易人数和次数 */ HardChartLatitudeVo chartLatitude(Long merchantId); + } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuRepertoryService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuRepertoryService.java index 305023251..5e5e18865 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuRepertoryService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardSpuRepertoryService.java @@ -19,7 +19,7 @@ public interface HardSpuRepertoryService extends IService { /** * 根据 hardwareId 和 cabinetNo 查询商品 */ - List>> getByCabinetNo(Long hardId, String cabinetNo); + List>> getByCabinetNo(Long Long, String cabinetNo); /** * 查询货柜补货商品列表 @@ -73,5 +74,5 @@ public interface HardSpuService extends IService { /** * 扣减库存 */ - Boolean deductionSpuStock(List list); + Boolean deductionSpuStock(HardDoorFlowEntity hardDoorFlow, List list); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApptServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApptServiceImpl.java new file mode 100644 index 000000000..b1f4b0a45 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApptServiceImpl.java @@ -0,0 +1,71 @@ +package com.bsd.pjcloud.hard.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.hard.api.entity.HardApptEntity; +import com.bsd.pjcloud.hard.mapper.HardApptMapper; +import com.bsd.pjcloud.hard.service.HardApptService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.ArrayList; + +/** + * 设备预约管理 + */ +@Validated +@Slf4j +@RequiredArgsConstructor +@Service +public class HardApptServiceImpl extends ServiceImpl implements HardApptService { + + /** + * 新增 + */ + @Override + public Long create(HardApptEntity dto) { + // title不能重复 + if (existTitle(dto.getTitle(), null)) { + throw new RuntimeException("标题不能重复"); + } + baseMapper.insert(dto); + return 0L; + } + + /** + * 修改 + */ + @Override + public Long edit(HardApptEntity dto) { + // title不能重复 + if (existTitle(dto.getTitle(), dto.getId())) { + throw new RuntimeException("标题不能重复"); + } + baseMapper.updateById(dto); + return dto.getId(); + } + + /** + * 删除 + */ + @Override + public void delByIds(ArrayList list) { + if (ObjectUtil.isEmpty(list)) return; + baseMapper.deleteBatchIds(list); + } + + private boolean existTitle(String title, Long id) { + Long count = baseMapper.selectCount(new LambdaQueryWrapper() + .eq(ObjectUtil.isNotEmpty(title), HardApptEntity::getTitle, title) + .ne(ObjectUtil.isNotEmpty(id), HardApptEntity::getId, id) + ); + if (ObjectUtil.isNotEmpty(id)) { + return count >= 1; + } + return count > 0; + } + +} \ 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 08e273725..c53ad4724 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/HardBroadcastServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardBroadcastServiceImpl.java index f678793cf..ea55921eb 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardBroadcastServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardBroadcastServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.admin.api.dto.UserInfo; import com.bsd.pjcloud.admin.api.feign.RemoteUserService; import com.bsd.pjcloud.admin.api.utils.DataUtil; import com.bsd.pjcloud.admin.api.vo.UserVO; @@ -24,6 +25,9 @@ import com.bsd.pjcloud.hard.api.vo.HardBroadcastVo; import com.bsd.pjcloud.hard.mapper.HardBroadcastMapper; import com.bsd.pjcloud.hard.mapper.manager.HardManagerMapper; import com.bsd.pjcloud.hard.service.HardBroadcastService; +import com.bsd.pjcloud.mqtt.api.feign.RemoteMqttEventService; +import com.bsd.pjcloud.mqtt.constant.MqttActionEnum; +import com.bsd.pjcloud.mqtt.dto.hard.HardTakeFoodBroadcastMsg; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -47,6 +51,8 @@ public class HardBroadcastServiceImpl extends ServiceImpl scopePageJoin(Page page, HardBroadcastDto dto, DataScope dataScope) { Page pageList = baseMapper.scopePageJoin(page, dto, dataScope); @@ -58,17 +64,17 @@ public class HardBroadcastServiceImpl extends ServiceImpl() + .eq(HardManagerEntity::getMerchantId, orderdetail.getMerchantId()) + .eq(HardManagerEntity::getIsTakeFood, YesNoEnum.YES.getCode()) + ); + if (ObjectUtil.isEmpty(hardDetail)) { + log.error("|{}|发送线下订餐mq消息失败,默认订餐设备不存在|{}|", TAG, orderdetail.getId()); + return; + } + String content = ""; + String phone = userInfo.getSysUser().getPhone(); + if (ObjectUtil.isNotEmpty(phone) && phone.length() >= 4) { + content = phone.substring(phone.length() - 4); + } + if (ObjectUtil.isEmpty(content)) { + log.error("|{}|发送线下订餐mq消息失败,生成发送消息错误|{}|", TAG, orderdetail.getId()); + return; + } HardBroadcastEntity saveObj = HardBroadcastEntity.builder() .userId(orderdetail.getUserId()) .hardId(orderdetail.getHardId()) - .topic("") + .topic(hardDetail.getMainTopic()) .bizType(HardBroadcastEnum.OFFLINE_CANTEEN_RESERVE.getType()) .bizId(String.valueOf(orderdetail.getId())) .title(HardBroadcastEnum.OFFLINE_CANTEEN_RESERVE.getDescription()) - .content("") + .content(content) .broadcastCount(0) .broadcastMaxCount(20) .isBroadcast(YesNoEnum.YES.getCode()) .isDone(YesNoEnum.NO.getCode()) .build(); baseMapper.insert(saveObj); + // 发送mq + HardTakeFoodBroadcastMsg msg = new HardTakeFoodBroadcastMsg(); + msg.setTopic(saveObj.getTopic()); + msg.setAction(MqttActionEnum.TAKE_FOOD_BROADCAST); + msg.setUserId(String.valueOf(userInfo.getSysUser().getUserId())); + msg.setUserName(userInfo.getSysUser().getName()); + msg.setUserMobile(userInfo.getSysUser().getPhone()); + msg.setId(String.valueOf(saveObj.getId())); + msg.setTitle(saveObj.getTitle()); + msg.setContent(saveObj.getContent()); + msg.setBroadcastMaxCount(saveObj.getBroadcastMaxCount()); + msg.setProductDesc(orderdetail.getProductDesc()); + msg.setPayPrice(orderdetail.getPayPrice()); + remoteMqttEventService.sendTakeFoodBroadcast(msg); } /** 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 1f59d1097..7087d991b 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 @@ -185,6 +185,7 @@ public class HardDoorFlowServiceImpl extends ServiceImpl scopePageJoin(Page page, HardDoorCabinetDto dto, DataScope dataScope) { + return baseMapper.scopePageJoin(page, dto, dataScope); + } + @Override public void saveOrUpdate(Long hardDoorId, List list) { List cabinetList = baseMapper.selectList(new LambdaQueryWrapper() diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardDoorManagerServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardDoorManagerServiceImpl.java index b4df51f42..a4e93d30e 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardDoorManagerServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/manager/HardDoorManagerServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bsd.pjcloud.common.core.util.CollectionUtils; import com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.hard.api.dto.manager.HardDoorCabinetDto; import com.bsd.pjcloud.hard.api.dto.manager.HardDoorManagerDto; import com.bsd.pjcloud.hard.api.dto.manager.HardManagerDto; import com.bsd.pjcloud.hard.api.dto.spu.HardChangeVolume; @@ -14,6 +15,7 @@ import com.bsd.pjcloud.hard.api.entity.manager.HardDoorCabinetEntity; import com.bsd.pjcloud.hard.api.entity.manager.HardDoorManagerEntity; import com.bsd.pjcloud.hard.api.entity.manager.HardManagerEntity; import com.bsd.pjcloud.hard.api.utils.HardUtil; +import com.bsd.pjcloud.hard.api.vo.manager.HardDoorCabinetVo; import com.bsd.pjcloud.hard.api.vo.manager.HardDoorManagerVo; import com.bsd.pjcloud.hard.mapper.manager.HardDoorManagerMapper; import com.bsd.pjcloud.hard.mapper.manager.HardManagerMapper; @@ -55,12 +57,36 @@ public class HardDoorManagerServiceImpl extends ServiceImpl selectCabinet(Page page, HardDoorCabinetDto dto) { + DataScope dataScope = new DataScope(); + return hardDoorCabinetService.scopePageJoin(page, dto, dataScope); + } + /** * 根据硬件id查询详情 */ @Override - public HardDoorManagerVo getByHardDoorId(Long hardId) { - HardDoorManagerVo hardDoor = baseMapper.pageJoin(hardId); + public HardDoorManagerVo getByHardDoorId(Long hardDoorId) { + HardDoorManagerVo hardDoor = baseMapper.pageJoinByHardDoorId(hardDoorId); + if (ObjectUtil.isNotEmpty(hardDoor)) { + List cabinetList = hardDoorCabinetService.getListByHardDoorId(hardDoor.getId()); + if (ObjectUtil.isNotEmpty(cabinetList)) { + hardDoor.setCabinetList(cabinetList); + } + } + return hardDoor; + } + + /** + * 根据硬件id查询详情 + */ + @Override + public HardDoorManagerVo getByHardId(Long hardId) { + HardDoorManagerVo hardDoor = baseMapper.pageJoinByHardId(hardId); if (ObjectUtil.isNotEmpty(hardDoor)) { List cabinetList = hardDoorCabinetService.getListByHardDoorId(hardDoor.getId()); if (ObjectUtil.isNotEmpty(cabinetList)) { @@ -119,6 +145,9 @@ public class HardDoorManagerServiceImpl extends ServiceImpl refundList = hardOrderMapper.listSb(refundDto, refundDataScope); - // 盈利 + // 消费净次数 HardOrderDto profitDto = BeanUtil.toBean(dto, HardOrderDto.class); profitDto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes()); DataScope profitDataScope = DataScope.of().func(DataScopeFuncEnum.ALL); @@ -102,7 +102,7 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { v.setTotalRefundCount(i.getTotalPayCount()); }); } - // 盈利 + // 消费净次数 if (ObjectUtil.isNotEmpty(profitList)) { profitList.stream().filter(i -> ObjectUtil.equals(i.getHardId(), v.getHardId())).findFirst().ifPresent(i -> { v.setTotalProfitPrice(i.getTotalPayPrice()); @@ -153,7 +153,7 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { DataScope refundDataScope = DataScope.of(); refundDataScope.setScopeDeptName("merchant_dept_id"); List refundList = hardOrderMapper.listCs(refundDto, refundDataScope); - // 盈利 + // 消费净次数 HardOrderDto profitDto = BeanUtil.toBean(dto, HardOrderDto.class); profitDto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes()); DataScope profitDataScope = DataScope.of(); @@ -167,7 +167,7 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { v.setTotalRefundCount(i.getTotalPayCount()); }); } - // 盈利 + // 消费净次数 if (ObjectUtil.isNotEmpty(profitList)) { profitList.stream().filter(i -> ObjectUtil.equals(i.getMerchantId(), v.getMerchantId())).findFirst().ifPresent(i -> { v.setTotalProfitPrice(i.getTotalPayPrice()); @@ -203,7 +203,7 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { refundDto.setOrderStatusCodes(HardOrderStatusEnum.getPayErrorCodes()); return hardOrderMapper.listCsByDay(refundDto); }); - // 盈利 + // 消费净次数 CompletableFuture> profitListFuture = CompletableFuture.supplyAsync(() -> { HardOrderDto profitDto = BeanUtil.toBean(dto, HardOrderDto.class); profitDto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes()); @@ -222,7 +222,7 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { v.setTotalRefundCount(i.getTotalPayCount()); }); } - // 盈利 + // 消费净次数 if (ObjectUtil.isNotEmpty(profitList)) { profitList.stream().filter(i -> ObjectUtil.equals(i.getDay(), v.getDay()) && ObjectUtil.equals(i.getMerchantId(), v.getMerchantId())).findFirst().ifPresent(i -> { v.setTotalProfitPrice(i.getTotalPayPrice()); @@ -244,6 +244,61 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { return totalList; } + /** + * 查询商户总共流水记录 + */ + @Override + public HardOrderCsVo mchWaterTotal(HardOrderDto dto, PjcloudUser user) { + HardOrderCsVo result = new HardOrderCsVo(); + // 查询总流水 + CompletableFuture totalFuture = CompletableFuture.supplyAsync(() -> { + HardOrderDto totalDto = BeanUtil.toBean(dto, HardOrderDto.class); + totalDto.setOrderStatusCodes(HardOrderStatusEnum.getPayPrice()); + return hardOrderMapper.listCsTotal(totalDto); + }); + // 扣款总流水 + CompletableFuture refundFuture = CompletableFuture.supplyAsync(() -> { + HardOrderDto refundDto = BeanUtil.toBean(dto, HardOrderDto.class); + refundDto.setOrderStatusCodes(HardOrderStatusEnum.getPayErrorCodes()); + return hardOrderMapper.listCsTotal(refundDto); + }); + // 消费净次数 + CompletableFuture profitFuture = CompletableFuture.supplyAsync(() -> { + HardOrderDto profitDto = BeanUtil.toBean(dto, HardOrderDto.class); + profitDto.setOrderStatusCodes(HardOrderStatusEnum.getPaySuccessCodes()); + return hardOrderMapper.listCsTotal(profitDto); + }); + CompletableFuture allFutures = CompletableFuture.allOf(totalFuture, refundFuture, profitFuture); + allFutures.join(); + HardOrderCsVo totalList = totalFuture.join(); + HardOrderCsVo refundList = refundFuture.join(); + HardOrderCsVo profitList = profitFuture.join(); + // 聚合一下数据 + if (ObjectUtil.isEmpty(totalList)) return result; + if (ObjectUtil.isNotEmpty(refundList)) { + if (ObjectUtil.isNotEmpty(refundList.getTotalPayPrice())) { + totalList.setTotalRefundPrice(refundList.getTotalPayPrice()); + } + if (ObjectUtil.isNotEmpty(refundList.getTotalPayCount())) { + totalList.setTotalRefundCount(refundList.getTotalPayCount()); + } + } + if (ObjectUtil.isNotEmpty(profitList)) { + if (ObjectUtil.isNotEmpty(profitList.getTotalPayPrice())) { + totalList.setTotalProfitPrice(profitList.getTotalPayPrice()); + } + if (ObjectUtil.isNotEmpty(profitList.getTotalPayCount())) { + totalList.setTotalProfitCount(profitList.getTotalPayCount()); + } + } + // 商户 + MchManageVo mchDetail = remoteMchService.getById(totalList.getMerchantId()).getData(); + if (ObjectUtil.isNotEmpty(mchDetail)) { + WalletDataUtil.convertMch(result, mchDetail); + } + return result; + } + /** * 部门交易记录 */ @@ -353,7 +408,7 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { } return hardOrderMapper.sumAndCount(refundDto); }); - // 查看盈利流水 + // 消费净次数 CompletableFuture> profitFuture = CompletableFuture.supplyAsync(() -> { HardOrderSumAndCountDto refundDto = new HardOrderSumAndCountDto(); refundDto.setUserDeptIds(deptIds); @@ -385,7 +440,8 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { } if (ObjectUtil.isNotEmpty(walletReduceList)) { walletReduceList.stream().filter(i -> ObjectUtil.equals(i.getDeptId(), v.getDeptId())).findFirst().ifPresent(i -> { - v.setWalletReducePrice(i.getSum()); + // v.setWalletReducePrice(i.getSum()); + v.setWalletReducePrice(Math.abs(i.getSum())); v.setWalletReduceCount(i.getCount()); }); } @@ -397,7 +453,8 @@ public class HardOrderTotalServiceImpl implements HardOrderTotalService { } if (ObjectUtil.isNotEmpty(walletOnceReduceList)) { walletOnceReduceList.stream().filter(i -> ObjectUtil.equals(i.getDeptId(), v.getDeptId())).findFirst().ifPresent(i -> { - v.setWalletOnceReducePrice(i.getSum()); + // v.setWalletOnceReducePrice(i.getSum()); + v.setWalletOnceReducePrice(Math.abs(i.getSum())); v.setWalletOnceReduceCount(i.getCount()); }); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuRepertoryServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuRepertoryServiceImpl.java index f6cf85752..605c1c900 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuRepertoryServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuRepertoryServiceImpl.java @@ -15,14 +15,14 @@ import com.bsd.pjcloud.hard.api.constant.spu.HardSpuRepertoryTypeEnum; import com.bsd.pjcloud.hard.api.dto.spu.DeductionSpuRepertoryDto; import com.bsd.pjcloud.hard.api.dto.spu.HardSpuRepertoryDto; import com.bsd.pjcloud.hard.api.entity.HardDoorFlowEntity; +import com.bsd.pjcloud.hard.api.entity.manager.HardDoorCabinetEntity; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuEntity; +import com.bsd.pjcloud.hard.api.entity.spu.HardSpuJoinEntity; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuRepertoryEntity; import com.bsd.pjcloud.hard.api.vo.spu.HardSpuRepertoryVo; import com.bsd.pjcloud.hard.mapper.manager.HardManagerMapper; import com.bsd.pjcloud.hard.mapper.spu.HardSpuRepertoryMapper; -import com.bsd.pjcloud.hard.service.HardDoorFlowService; -import com.bsd.pjcloud.hard.service.HardSpuRepertoryService; -import com.bsd.pjcloud.hard.service.HardSpuService; +import com.bsd.pjcloud.hard.service.*; import com.bsd.pjcloud.wallet.api.feign.RemoteMchService; import com.bsd.pjcloud.wallet.api.utils.WalletDataUtil; import com.bsd.pjcloud.wallet.api.vo.MchManageVo; @@ -46,6 +46,8 @@ public class HardSpuRepertoryServiceImpl extends ServiceImpl() + .eq(HardSpuJoinEntity::getHardDoorId, dto.getHardDoorId()) + .eq(HardSpuJoinEntity::getCabinetNo, dto.getCabinetNo()) + .eq(HardSpuJoinEntity::getSpuId, dto.getSpuId()) + ); + if (ObjectUtil.isEmpty(cabinetSpu)) { + throw new RuntimeException("货柜中没有这个商品"); + } Integer beforeCount = 0; if (ObjectUtil.isNotEmpty(spuDetail.getRepertoryCount())) { beforeCount = spuDetail.getRepertoryCount(); } - entity.setBeforeCount(beforeCount); - entity.setUserId(user.getId()); - entity.setBizType(HardSpuRepertoryTypeEnum.HANDLER.getType()); - baseMapper.insert(entity); - // 更新商品库存 + dto.setBeforeCount(beforeCount); + dto.setUserId(user.getId()); + dto.setBizType(HardSpuRepertoryTypeEnum.HANDLER.getType()); + baseMapper.insert(dto); + // 更新商品总库存 HardSpuEntity spu = new HardSpuEntity(); spu.setId(spuDetail.getId()); - spu.setRepertoryCount(entity.getCount() + beforeCount); + spu.setRepertoryCount(dto.getCount() + beforeCount); + spu.setVersion(spuDetail.getVersion()); hardSpuService.updateById(spu); - return entity.getId(); + // 更新柜门商品库存 + HardSpuJoinEntity cabinetSpuJoin = new HardSpuJoinEntity(); + cabinetSpuJoin.setId(cabinetSpu.getId()); + cabinetSpuJoin.setVersion(cabinetSpu.getVersion()); + cabinetSpuJoin.setRepertoryCount(dto.getCount() + cabinetSpu.getRepertoryCount()); + hardSpuJoinService.updateById(cabinetSpuJoin); + return dto.getId(); } /** @@ -169,9 +193,13 @@ public class HardSpuRepertoryServiceImpl extends ServiceImpl spuIds = list.stream().map(DeductionSpuRepertoryDto.Item::getHardSpuId).toList(); List spuList = hardSpuService.listByIds(spuIds); + // 查询货柜商品列表 + List spuJoinList = hardSpuJoinService.list(new LambdaQueryWrapper() + .in(HardSpuJoinEntity::getSpuId, spuIds) + .eq(HardSpuJoinEntity::getHardDoorId, hardDoorFlow.getHardDoorId()) + .eq(HardSpuJoinEntity::getCabinetNo, hardDoorFlow.getCabinetNo()) + ); // 更新上架记录 - List spuRepertoryList = new ArrayList<>(); - List spuUpdateList = new ArrayList<>(); for (DeductionSpuRepertoryDto.Item i : list) { spuList.stream().filter(v -> v.getId().equals(i.getHardSpuId())).findFirst().ifPresent(spu -> { HardSpuRepertoryEntity entity = new HardSpuRepertoryEntity(); @@ -179,24 +207,31 @@ public class HardSpuRepertoryServiceImpl extends ServiceImpl ObjectUtil.equals(v.getSpuId(), spu.getId())).findFirst().ifPresent(spuJoin -> { + HardSpuJoinEntity spuJoinEntity = new HardSpuJoinEntity(); + spuJoinEntity.setId(spuJoin.getId()); + spuJoinEntity.setVersion(spuJoin.getVersion()); + spuJoinEntity.setRepertoryCount(entity.getCount() + spuJoin.getRepertoryCount()); + hardSpuJoinService.updateById(spuJoinEntity); + }); }); } - // 添加上架记录 - baseMapper.insert(spuRepertoryList); - // 更新商品库存 - hardSpuService.updateBatchById(spuUpdateList); return false; } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java index e82b5761b..3ecc61e85 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java @@ -15,6 +15,7 @@ import com.bsd.pjcloud.hard.api.dto.spu.DeductionSpuStockDto; import com.bsd.pjcloud.hard.api.dto.spu.HardPutawayDto; import com.bsd.pjcloud.hard.api.dto.spu.HardSpuDto; import com.bsd.pjcloud.hard.api.dto.spu.HardSpuJoinDto; +import com.bsd.pjcloud.hard.api.entity.HardDoorFlowEntity; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuEntity; import com.bsd.pjcloud.hard.api.entity.spu.HardSpuJoinEntity; import com.bsd.pjcloud.hard.api.vo.manager.HardDoorManagerVo; @@ -121,9 +122,9 @@ public class HardSpuServiceImpl extends ServiceImpl>> getByCabinetNo(Long hardId, String cabinetNo) { List>> result = new LinkedList<>(); // 查询设备 - HardDoorManagerVo doorManagerVo = hardDoorManagerService.getByHardDoorId(hardId); + HardDoorManagerVo doorManagerVo = hardDoorManagerService.getByHardId(hardId); if (ObjectUtil.isEmpty(doorManagerVo)) return result; - int doorCount = 6; + int doorCount = 5; int storeySpuMaxCount = 10; if (ObjectUtil.isNotEmpty(doorCount)) { doorCount = doorManagerVo.getDoorCount().intValue(); @@ -184,10 +185,11 @@ public class HardSpuServiceImpl extends ServiceImpl() - .eq(HardSpuJoinEntity::getHardDoorNumber, spuJoinDetail.getHardDoorNumber()) + .eq(HardSpuJoinEntity::getHardDoorId, spuJoinDetail.getHardDoorId()) + .eq(HardSpuJoinEntity::getCabinetNo, spuJoinDetail.getCabinetNo()) .eq(HardSpuJoinEntity::getSpuId, spuDetail.getId()) ); - if (doorCount > 0) throw new RuntimeException("该层已有相同商品"); + if (doorCount > 0) throw new RuntimeException("该货柜已有相同商品"); LambdaUpdateWrapper updateObj = new LambdaUpdateWrapper() .set(HardSpuJoinEntity::getSpuId, spuDetail.getId()) .eq(HardSpuJoinEntity::getId, dto.getId()); @@ -240,8 +242,8 @@ public class HardSpuServiceImpl extends ServiceImpl list) { + public Boolean deductionSpuStock(HardDoorFlowEntity hardDoorFlow, List list) { + if (ObjectUtil.isEmpty(hardDoorFlow)) { + log.error("|{}|扣减商品库存失败flow为空dto|{}|", TAG, JSONUtil.toJsonStr(list)); + return false; + } if (ObjectUtil.isEmpty(list)) { log.error("|{}|扣减商品库存失败list为空", TAG); return false; @@ -262,6 +268,12 @@ public class HardSpuServiceImpl extends ServiceImpl hardSpuJoinList = hardSpuJoinService.list(new LambdaQueryWrapper() + .in(HardSpuJoinEntity::getSpuId, hardSpuIdes) + .eq(HardSpuJoinEntity::getHardDoorId, hardDoorFlow.getHardDoorId()) + .eq(HardSpuJoinEntity::getCabinetNo, hardDoorFlow.getCabinetNo()) + ); for (HardSpuEntity i : hardSpuList) { list.stream().filter(j -> ObjectUtil.equals(i.getId(), j.getHardSpuId())).findFirst().ifPresent(hardSpu -> { if (ObjectUtil.isNotEmpty(hardSpu.getIncrCount())) { @@ -269,11 +281,22 @@ public class HardSpuServiceImpl extends ServiceImpl ObjectUtil.equals(v.getHardSpuId(), i.getSpuId())).findFirst().ifPresent(spu -> { + HardSpuJoinEntity spuJoinEntity = new HardSpuJoinEntity(); + spuJoinEntity.setId(i.getId()); + spuJoinEntity.setVersion(i.getVersion()); + spuJoinEntity.setRepertoryCount(i.getRepertoryCount() - spu.getIncrCount()); + hardSpuJoinService.updateById(spuJoinEntity); + }); + } return true; } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/商户交易金额汇总.xlsx b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/商户交易金额汇总.xlsx index 831e78567..557541e5c 100644 Binary files a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/商户交易金额汇总.xlsx and b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/商户交易金额汇总.xlsx differ diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/支付方式交易汇总.xlsx b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/支付方式交易汇总.xlsx index 4509264c9..95ad4b2bd 100644 Binary files a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/支付方式交易汇总.xlsx and b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/支付方式交易汇总.xlsx differ diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/部门交易金额汇总.xlsx b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/部门交易金额汇总.xlsx index 26441d9e0..923260b8f 100644 Binary files a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/部门交易金额汇总.xlsx and b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/file/部门交易金额汇总.xlsx differ diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardApptMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardApptMapper.xml new file mode 100644 index 000000000..ab239b590 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardApptMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/manager/HardDoorCabinetMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/manager/HardDoorCabinetMapper.xml index 3f85f0c40..e5a3c1cc1 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/manager/HardDoorCabinetMapper.xml +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/manager/HardDoorCabinetMapper.xml @@ -2,8 +2,7 @@ - - + @@ -18,5 +17,47 @@ - + + + + select a.id, + a.hard_door_id, + a.cabinet_no, + a.is_lock_online, + a.lock_status, + a.door_status, + a.sale_status, + a.qr_code, + a.create_by, + a.create_time, + a.update_by, + a.update_time, + a.del_flag, + a.tenant_id, + + + + a.del_flag = '0' + + and a.hard_door_id = #{dto.hardDoorId} + + + and a.cabinet_no like concat('%', #{dto.cabinetNo}, '%') + + + + \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/manager/HardDoorManagerMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/manager/HardDoorManagerMapper.xml index 45745f450..a54e99383 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/manager/HardDoorManagerMapper.xml +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/manager/HardDoorManagerMapper.xml @@ -94,7 +94,14 @@ order by a.create_time desc , a.id desc - + + + a.id = #{hardDoorId} + + + + + + + + soureD.name as sourceDeptName, + targetD.name as targetDeptName, + u.username as username, + u.phone as userMobile, + u.avatar as userAvatar + from sys_user_transaction a + left join sys_dept soureD on soureD.dept_id = a.source_dept_id + left join sys_dept targetD on targetD.dept_id = a.target_dept_id + left join sys_user u on u.user_id = a.user_id + + + + + \ No newline at end of file