From 7fbb8bc6364a2e4bff3ad5138ea32fe0f4c18943 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Mon, 21 Apr 2025 21:02:39 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E9=A2=84=E7=BA=A6=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=AE=B5=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_hardware.sql | 20 ++++ .../bsd/pjcloud/hard/api/dto/HardApptDto.java | 8 ++ .../hard/api/entity/HardApptEntity.java | 107 ++++++++++++++++++ .../bsd/pjcloud/hard/api/vo/HardApptVo.java | 8 ++ .../hard/controller/HardApptController.java | 95 ++++++++++++++++ .../pjcloud/hard/mapper/HardApptMapper.java | 11 ++ .../pjcloud/hard/service/HardApptService.java | 8 ++ .../service/impl/HardApptServiceImpl.java | 20 ++++ .../main/resources/mapper/HardApptMapper.xml | 20 ++++ 9 files changed, 297 insertions(+) create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/HardApptDto.java create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardApptEntity.java create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/vo/HardApptVo.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardApptController.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardApptMapper.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardApptService.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApptServiceImpl.java create mode 100644 pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardApptMapper.xml diff --git a/db/800pjcloudx_hardware.sql b/db/800pjcloudx_hardware.sql index ee418ebb7..34ae09a85 100644 --- a/db/800pjcloudx_hardware.sql +++ b/db/800pjcloudx_hardware.sql @@ -367,6 +367,26 @@ 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 bigint NOT NULL COMMENT '标题', + start_time datetime DEFAULT NULL COMMENT '开始时间', + end_time datetime 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 -- ---------------------------- 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/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..2a7c50907 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardApptEntity.java @@ -0,0 +1,107 @@ +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; + +/** + * 设备预约管理 + */ +@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 Long title; + + /** + * 开始时间 + */ + @Schema(description = "开始时间") + private LocalDateTime startTime; + + /** + * 结束时间 + */ + @Schema(description = "结束时间") + private LocalDateTime 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/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-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..fcfbe51a5 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardApptController.java @@ -0,0 +1,95 @@ +package com.bsd.pjcloud.hard.controller; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.collection.CollUtil; +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.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 = "小程序列表", description = "小程序列表") + @GetMapping("/app/list") + public R> appList() { + return R.ok(hardApptService.list(new LambdaQueryWrapper().orderByDesc(HardApptEntity::getSort))); + } + + + /* ************************************* end app end ************************************* */ + + + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('hard_hardAppt_view')") + public R getHardApptPage(@ParameterObject Page page, @ParameterObject HardApptEntity hardAppt) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + 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.save(hardAppt)); + } + + @Operation(summary = "修改设备预约管理", description = "修改设备预约管理") + @SysLog("修改设备预约管理") + @PutMapping + @PreAuthorize("@pms.hasPermission('hard_hardAppt_edit')") + public R updateById(@RequestBody HardApptEntity hardAppt) { + return R.ok(hardApptService.updateById(hardAppt)); + } + + @Operation(summary = "通过id删除设备预约管理", description = "通过id删除设备预约管理") + @SysLog("通过id删除设备预约管理") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('hard_hardAppt_del')") + public R removeById(@RequestBody Long[] ids) { + return R.ok(hardApptService.removeBatchByIds(CollUtil.toList(ids))); + } + + @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/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/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..13bf93ba3 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardApptService.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.hard.api.entity.HardApptEntity; + +public interface HardApptService extends IService { + +} \ 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..28d399a70 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardApptServiceImpl.java @@ -0,0 +1,20 @@ +package com.bsd.pjcloud.hard.service.impl; + +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; + +/** + * 设备预约管理 + */ +@Validated +@Slf4j +@RequiredArgsConstructor +@Service +public class HardApptServiceImpl extends ServiceImpl implements HardApptService { +} \ No newline at end of file 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