feat(机柜主板): 新增机柜主板管理功能
新增机柜主板管理模块,包括实体类、服务类、Mapper接口、DTO、查询类、命令类、控制器等。实现主板信息的增删改查功能,支持通过柜机ID查询主板信息,并提供分页查询接口。同时更新了数据库表结构和代码生成器配置。
This commit is contained in:
parent
e4235e197b
commit
f27f651e06
|
@ -0,0 +1,68 @@
|
|||
package com.agileboot.admin.controller.cabinet;
|
||||
|
||||
import com.agileboot.admin.customize.aop.accessLog.AccessLog;
|
||||
import com.agileboot.common.core.base.BaseController;
|
||||
import com.agileboot.common.core.dto.ResponseDTO;
|
||||
import com.agileboot.common.core.page.PageDTO;
|
||||
import com.agileboot.common.enums.common.BusinessTypeEnum;
|
||||
import com.agileboot.domain.common.command.BulkOperationCommand;
|
||||
import com.agileboot.domain.cabinet.mainboard.CabinetMainboardApplicationService;
|
||||
import com.agileboot.domain.cabinet.mainboard.command.AddCabinetMainboardCommand;
|
||||
import com.agileboot.domain.cabinet.mainboard.command.UpdateCabinetMainboardCommand;
|
||||
import com.agileboot.domain.cabinet.mainboard.db.CabinetMainboardEntity;
|
||||
import com.agileboot.domain.cabinet.mainboard.dto.CabinetMainboardDTO;
|
||||
import com.agileboot.domain.cabinet.mainboard.query.SearchCabinetMainboardQuery;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import java.util.List;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/cabinet/mainboards")
|
||||
@RequiredArgsConstructor
|
||||
@Validated
|
||||
public class CabinetMainboardController extends BaseController {
|
||||
|
||||
private final CabinetMainboardApplicationService cabinetMainboardApplicationService;
|
||||
|
||||
@Operation(summary = "主板列表")
|
||||
@GetMapping
|
||||
public ResponseDTO<PageDTO<CabinetMainboardDTO>> list(SearchCabinetMainboardQuery<CabinetMainboardEntity> query) {
|
||||
PageDTO<CabinetMainboardDTO> page = cabinetMainboardApplicationService.getMainboardList(query);
|
||||
return ResponseDTO.ok(page);
|
||||
}
|
||||
|
||||
@Operation(summary = "新增主板")
|
||||
@AccessLog(title = "主板管理", businessType = BusinessTypeEnum.ADD)
|
||||
@PostMapping
|
||||
public ResponseDTO<Void> add(@Validated @RequestBody AddCabinetMainboardCommand command) {
|
||||
cabinetMainboardApplicationService.addMainboard(command);
|
||||
return ResponseDTO.ok();
|
||||
}
|
||||
|
||||
@Operation(summary = "修改主板")
|
||||
@AccessLog(title = "主板管理", businessType = BusinessTypeEnum.MODIFY)
|
||||
@PutMapping("/{id}")
|
||||
public ResponseDTO<Void> edit(@PathVariable Long id, @Validated @RequestBody UpdateCabinetMainboardCommand command) {
|
||||
command.setMainboardId(id);
|
||||
cabinetMainboardApplicationService.updateMainboard(command);
|
||||
return ResponseDTO.ok();
|
||||
}
|
||||
|
||||
@Operation(summary = "删除主板")
|
||||
@AccessLog(title = "主板管理", businessType = BusinessTypeEnum.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public ResponseDTO<Void> remove(@PathVariable @NotNull List<Long> ids) {
|
||||
cabinetMainboardApplicationService.deleteMainboard(new BulkOperationCommand<>(ids));
|
||||
return ResponseDTO.ok();
|
||||
}
|
||||
}
|
|
@ -35,7 +35,7 @@ public class Ab98ApiUtil {
|
|||
put("tel", tel);
|
||||
put("nobind", "true");
|
||||
put("for_login", "true");
|
||||
put("from", "jt");
|
||||
put("from", "ys");
|
||||
}};
|
||||
|
||||
String response = HttpUtil.createPost(url)
|
||||
|
@ -118,8 +118,8 @@ public class Ab98ApiUtil {
|
|||
* @return outputData.takeFace 是否需要人脸验证(true需要刷脸)
|
||||
*/
|
||||
public static TokenResponse getToken(String appName) {
|
||||
// String url = BASE_URL + "?code=doGetToken&from=jt&app=" + appName;
|
||||
String url = BASE_URL + "?code=doGetToken&from=jt";
|
||||
// String url = BASE_URL + "?code=doGetToken&from=ys&app=" + appName;
|
||||
String url = BASE_URL + "?code=doGetToken&from=ys";
|
||||
|
||||
String response = HttpUtil.createGet(url)
|
||||
.header("noSign", "true")
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
package com.agileboot.domain.cabinet.mainboard;
|
||||
|
||||
import com.agileboot.common.core.page.PageDTO;
|
||||
import com.agileboot.domain.common.command.BulkOperationCommand;
|
||||
import com.agileboot.domain.cabinet.mainboard.command.AddCabinetMainboardCommand;
|
||||
import com.agileboot.domain.cabinet.mainboard.command.UpdateCabinetMainboardCommand;
|
||||
import com.agileboot.domain.cabinet.mainboard.db.CabinetMainboardEntity;
|
||||
import com.agileboot.domain.cabinet.mainboard.db.CabinetMainboardService;
|
||||
import com.agileboot.domain.cabinet.mainboard.dto.CabinetMainboardDTO;
|
||||
import com.agileboot.domain.cabinet.mainboard.model.CabinetMainboardModel;
|
||||
import com.agileboot.domain.cabinet.mainboard.model.CabinetMainboardModelFactory;
|
||||
import com.agileboot.domain.cabinet.mainboard.query.SearchCabinetMainboardQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class CabinetMainboardApplicationService {
|
||||
private final CabinetMainboardService cabinetMainboardService;
|
||||
private final CabinetMainboardModelFactory cabinetMainboardModelFactory;
|
||||
|
||||
public PageDTO<CabinetMainboardDTO> getMainboardList(SearchCabinetMainboardQuery<CabinetMainboardEntity> query) {
|
||||
Page<CabinetMainboardEntity> page = cabinetMainboardService.getMainboardList(query);
|
||||
List<CabinetMainboardDTO> dtoList = page.getRecords().stream()
|
||||
.map(CabinetMainboardDTO::new)
|
||||
.collect(Collectors.toList());
|
||||
return new PageDTO<>(dtoList, page.getTotal());
|
||||
}
|
||||
|
||||
public void addMainboard(AddCabinetMainboardCommand command) {
|
||||
CabinetMainboardModel model = cabinetMainboardModelFactory.create();
|
||||
model.loadAddCommand(command);
|
||||
model.insert();
|
||||
}
|
||||
|
||||
public void updateMainboard(UpdateCabinetMainboardCommand command) {
|
||||
CabinetMainboardModel model = cabinetMainboardModelFactory.loadById(command.getMainboardId());
|
||||
model.loadUpdateCommand(command);
|
||||
model.updateById();
|
||||
}
|
||||
|
||||
public void deleteMainboard(BulkOperationCommand<Long> command) {
|
||||
for (Long id : command.getIds()) {
|
||||
CabinetMainboardModel model = cabinetMainboardModelFactory.loadById(id);
|
||||
model.deleteById();
|
||||
}
|
||||
}
|
||||
|
||||
public CabinetMainboardEntity getLatestMainboard() {
|
||||
return cabinetMainboardService.selectLatestMainboard();
|
||||
}
|
||||
|
||||
public CabinetMainboardEntity getByCabinetId(Long cabinetId) {
|
||||
return cabinetMainboardService.selectByCabinetId(cabinetId);
|
||||
}
|
||||
|
||||
public List<CabinetMainboardEntity> getAllMainboards() {
|
||||
return cabinetMainboardService.selectAll();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
package com.agileboot.domain.cabinet.mainboard.command;
|
||||
|
||||
import com.agileboot.domain.cabinet.mainboard.db.CabinetMainboardEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class AddCabinetMainboardCommand extends CabinetMainboardEntity {
|
||||
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package com.agileboot.domain.cabinet.mainboard.command;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.PositiveOrZero;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class UpdateCabinetMainboardCommand extends AddCabinetMainboardCommand {
|
||||
|
||||
@NotNull
|
||||
@PositiveOrZero
|
||||
private Long mainboardId;
|
||||
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package com.agileboot.domain.cabinet.mainboard.db;
|
||||
|
||||
import com.agileboot.common.core.base.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 机柜主板信息表
|
||||
* </p>
|
||||
*
|
||||
* @author valarchie
|
||||
* @since 2025-05-15
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@TableName("cabinet_mainboard")
|
||||
@ApiModel(value = "CabinetMainboardEntity对象", description = "机柜主板信息表")
|
||||
public class CabinetMainboardEntity extends BaseEntity<CabinetMainboardEntity> {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("主板唯一ID")
|
||||
@TableId(value = "mainboard_id", type = IdType.AUTO)
|
||||
private Long mainboardId;
|
||||
|
||||
@ApiModelProperty("关联柜机ID")
|
||||
@TableField("cabinet_id")
|
||||
private Long cabinetId;
|
||||
|
||||
@ApiModelProperty("锁控板序号")
|
||||
@TableField("lock_control_no")
|
||||
private Integer lockControlNo;
|
||||
|
||||
|
||||
@Override
|
||||
public Serializable pkVal() {
|
||||
return this.mainboardId;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package com.agileboot.domain.cabinet.mainboard.db;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import java.util.List;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 机柜主板信息表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author valarchie
|
||||
* @since 2025-05-15
|
||||
*/
|
||||
public interface CabinetMainboardMapper extends BaseMapper<CabinetMainboardEntity> {
|
||||
@Select("SELECT mainboard_id, cabinet_id, lock_control_no " +
|
||||
"FROM cabinet_mainboard " +
|
||||
"${ew.customSqlSegment}")
|
||||
Page<CabinetMainboardEntity> getMainboardList(
|
||||
Page<CabinetMainboardEntity> page,
|
||||
@Param(Constants.WRAPPER) Wrapper<CabinetMainboardEntity> queryWrapper
|
||||
);
|
||||
|
||||
@Select("SELECT * " +
|
||||
"FROM cabinet_mainboard " +
|
||||
"ORDER BY create_time DESC " +
|
||||
"LIMIT 1")
|
||||
CabinetMainboardEntity selectLatestMainboard();
|
||||
|
||||
@Select("SELECT * " +
|
||||
"FROM cabinet_mainboard " +
|
||||
"ORDER BY create_time DESC")
|
||||
List<CabinetMainboardEntity> selectAll();
|
||||
|
||||
@Select("SELECT * FROM cabinet_mainboard WHERE cabinet_id = #{cabinetId} LIMIT 1")
|
||||
CabinetMainboardEntity selectByCabinetId(Long cabinetId);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package com.agileboot.domain.cabinet.mainboard.db;
|
||||
|
||||
import com.agileboot.common.core.page.AbstractPageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 机柜主板信息表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author valarchie
|
||||
* @since 2025-05-15
|
||||
*/
|
||||
public interface CabinetMainboardService extends IService<CabinetMainboardEntity> {
|
||||
Page<CabinetMainboardEntity> getMainboardList(AbstractPageQuery<CabinetMainboardEntity> query);
|
||||
|
||||
List<CabinetMainboardEntity> selectAll();
|
||||
|
||||
CabinetMainboardEntity selectLatestMainboard();
|
||||
|
||||
CabinetMainboardEntity selectByCabinetId(Long cabinetId);
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package com.agileboot.domain.cabinet.mainboard.db;
|
||||
|
||||
import com.agileboot.common.core.page.AbstractPageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 机柜主板信息表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author valarchie
|
||||
* @since 2025-05-15
|
||||
*/
|
||||
@Service
|
||||
public class CabinetMainboardServiceImpl extends ServiceImpl<CabinetMainboardMapper, CabinetMainboardEntity> implements CabinetMainboardService {
|
||||
|
||||
@Override
|
||||
public Page<CabinetMainboardEntity> getMainboardList(AbstractPageQuery<CabinetMainboardEntity> query) {
|
||||
return this.page(query.toPage(), query.toQueryWrapper());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CabinetMainboardEntity> selectAll() {
|
||||
return baseMapper.selectAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CabinetMainboardEntity selectLatestMainboard() {
|
||||
return baseMapper.selectLatestMainboard();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CabinetMainboardEntity selectByCabinetId(Long cabinetId) {
|
||||
return baseMapper.selectByCabinetId(cabinetId);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package com.agileboot.domain.cabinet.mainboard.dto;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.agileboot.common.annotation.ExcelColumn;
|
||||
import com.agileboot.common.annotation.ExcelSheet;
|
||||
import com.agileboot.domain.cabinet.mainboard.db.CabinetMainboardEntity;
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@ExcelSheet(name = "柜机主板表")
|
||||
@Data
|
||||
public class CabinetMainboardDTO {
|
||||
|
||||
public CabinetMainboardDTO(CabinetMainboardEntity entity) {
|
||||
if (entity != null) {
|
||||
BeanUtil.copyProperties(entity, this);
|
||||
}
|
||||
}
|
||||
|
||||
@ExcelColumn(name = "主板唯一ID")
|
||||
private Long mainboardId;
|
||||
|
||||
@ExcelColumn(name = "关联柜机ID")
|
||||
private Long cabinetId;
|
||||
|
||||
@ExcelColumn(name = "锁控板序号")
|
||||
private Integer lockControlNo;
|
||||
|
||||
@ExcelColumn(name = "创建时间")
|
||||
private Date createTime;
|
||||
|
||||
@ExcelColumn(name = "更新时间")
|
||||
private Date updateTime;
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package com.agileboot.domain.cabinet.mainboard.model;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.agileboot.domain.cabinet.mainboard.command.AddCabinetMainboardCommand;
|
||||
import com.agileboot.domain.cabinet.mainboard.command.UpdateCabinetMainboardCommand;
|
||||
import com.agileboot.domain.cabinet.mainboard.db.CabinetMainboardEntity;
|
||||
import com.agileboot.domain.cabinet.mainboard.db.CabinetMainboardService;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class CabinetMainboardModel extends CabinetMainboardEntity {
|
||||
|
||||
private CabinetMainboardService cabinetMainboardService;
|
||||
|
||||
public CabinetMainboardModel(CabinetMainboardEntity entity, CabinetMainboardService cabinetMainboardService) {
|
||||
this(cabinetMainboardService);
|
||||
if (entity != null) {
|
||||
BeanUtil.copyProperties(entity, this);
|
||||
}
|
||||
}
|
||||
|
||||
public CabinetMainboardModel(CabinetMainboardService cabinetMainboardService) {
|
||||
this.cabinetMainboardService = cabinetMainboardService;
|
||||
}
|
||||
|
||||
public void loadAddCommand(AddCabinetMainboardCommand command) {
|
||||
if (command != null) {
|
||||
BeanUtil.copyProperties(command, this, "mainboardId");
|
||||
}
|
||||
}
|
||||
|
||||
public void loadUpdateCommand(UpdateCabinetMainboardCommand command) {
|
||||
if (command != null) {
|
||||
loadAddCommand(command);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package com.agileboot.domain.cabinet.mainboard.model;
|
||||
|
||||
import com.agileboot.common.exception.ApiException;
|
||||
import com.agileboot.common.exception.error.ErrorCode;
|
||||
import com.agileboot.domain.cabinet.mainboard.db.CabinetMainboardEntity;
|
||||
import com.agileboot.domain.cabinet.mainboard.db.CabinetMainboardService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class CabinetMainboardModelFactory {
|
||||
|
||||
private final CabinetMainboardService cabinetMainboardService;
|
||||
|
||||
public CabinetMainboardModel loadById(Long mainboardId) {
|
||||
CabinetMainboardEntity entity = cabinetMainboardService.getById(mainboardId);
|
||||
if (entity == null) {
|
||||
throw new ApiException(ErrorCode.Business.COMMON_OBJECT_NOT_FOUND, mainboardId, "机柜主板信息");
|
||||
}
|
||||
return new CabinetMainboardModel(entity, cabinetMainboardService);
|
||||
}
|
||||
|
||||
public CabinetMainboardModel create() {
|
||||
return new CabinetMainboardModel(cabinetMainboardService);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package com.agileboot.domain.cabinet.mainboard.query;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.agileboot.common.core.page.AbstractPageQuery;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class SearchCabinetMainboardQuery<T> extends AbstractPageQuery<T> {
|
||||
|
||||
private Long cabinetId;
|
||||
private Integer lockControlNo;
|
||||
|
||||
@Override
|
||||
public QueryWrapper<T> addQueryCondition() {
|
||||
QueryWrapper<T> queryWrapper = new QueryWrapper<>();
|
||||
|
||||
queryWrapper
|
||||
.eq(cabinetId != null, "cabinet_id", cabinetId)
|
||||
.eq(lockControlNo != null, "lock_control_no", lockControlNo);
|
||||
|
||||
this.timeRangeColumn = "create_time";
|
||||
|
||||
return queryWrapper;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.agileboot.domain.cabinet.mainboard.db.CabinetMainboardMapper">
|
||||
|
||||
</mapper>
|
|
@ -61,7 +61,7 @@ public class CodeGenerator {
|
|||
//生成的类 放在orm子模块下的/target/generated-code目录底下
|
||||
.module("/agileboot-orm/target/generated-code")
|
||||
.parentPackage("com.agileboot")
|
||||
.tableName("ab98_user")
|
||||
.tableName("cabinet_mainboard")
|
||||
// 决定是否继承基类
|
||||
.isExtendsFromBaseEntity(true)
|
||||
.build();
|
||||
|
|
|
@ -28,3 +28,23 @@ CREATE TABLE `ab98_user` (
|
|||
ALTER TABLE `smart_cabinet`
|
||||
ADD COLUMN `main_cabinet` BIGINT NULL COMMENT '归属主柜ID'
|
||||
AFTER `cabinet_type`;
|
||||
|
||||
DROP TABLE IF EXISTS `cabinet_mainboard`;
|
||||
|
||||
CREATE TABLE `cabinet_mainboard` (
|
||||
`mainboard_id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主板唯一ID',
|
||||
`cabinet_id` BIGINT NOT NULL COMMENT '关联柜机ID',
|
||||
`lock_control_no` INT NOT NULL COMMENT '锁控板序号',
|
||||
`creator_id` BIGINT NULL DEFAULT 0 COMMENT '创建者ID',
|
||||
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updater_id` BIGINT NULL DEFAULT 0 COMMENT '更新者ID',
|
||||
`update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '删除标志(0存在 1删除)',
|
||||
PRIMARY KEY (`mainboard_id`),
|
||||
KEY `idx_cabinet` (`cabinet_id`),
|
||||
CONSTRAINT `fk_mainboard_cabinet` FOREIGN KEY (`cabinet_id`) REFERENCES `smart_cabinet` (`cabinet_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='机柜主板信息表';
|
||||
|
||||
ALTER TABLE `cabinet_cell`
|
||||
ADD COLUMN `mainboard_id` BIGINT NULL COMMENT '归属主板ID'
|
||||
AFTER `cabinet_id`;
|
||||
|
|
Loading…
Reference in New Issue