ソースを参照

东北大学定制气瓶开发

hanzhiwei 2 年 前
コミット
9fab5ba123
共有34 個のファイルを変更した1824 個の追加0 個の削除を含む
  1. 6 0
      zd-model/src/main/java/com/zd/model/page/PageQuery.java
  2. 16 0
      zd-modules/zd-airbottle/pom.xml
  3. 26 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/CodeGenerator.java
  4. 133 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/controller/DbBottleController.java
  5. 147 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/controller/DbInOutRecordController.java
  6. 134 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/controller/DbStockController.java
  7. 140 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/controller/DbUsageRecordController.java
  8. 82 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/DbBottle.java
  9. 118 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/DbInOutRecord.java
  10. 118 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/DbStock.java
  11. 124 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/DbUsageRecord.java
  12. 41 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/bo/DbBottleBo.java
  13. 92 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/bo/DbInOutRecordBo.java
  14. 33 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/bo/DbInOutRecordParam.java
  15. 86 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/bo/DbStockBo.java
  16. 29 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/bo/DbStockParam.java
  17. 88 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/bo/DbUsageRecordBo.java
  18. 18 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/mapper/DbBottleMapper.java
  19. 18 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/mapper/DbInOutRecordMapper.java
  20. 18 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/mapper/DbStockMapper.java
  21. 18 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/mapper/DbUsageRecordMapper.java
  22. 16 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/DbBottleService.java
  23. 16 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/DbInOutRecordService.java
  24. 16 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/DbStockService.java
  25. 16 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/DbUsageRecordService.java
  26. 20 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/impl/DbBottleServiceImpl.java
  27. 20 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/impl/DbInOutRecordServiceImpl.java
  28. 20 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/impl/DbStockServiceImpl.java
  29. 20 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/impl/DbUsageRecordServiceImpl.java
  30. 49 0
      zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/utils/PageUtil.java
  31. 27 0
      zd-modules/zd-airbottle/src/main/resources/mapper/airbottle/DbBottleMapper.xml
  32. 39 0
      zd-modules/zd-airbottle/src/main/resources/mapper/airbottle/DbInOutRecordMapper.xml
  33. 39 0
      zd-modules/zd-airbottle/src/main/resources/mapper/airbottle/DbStockMapper.xml
  34. 41 0
      zd-modules/zd-airbottle/src/main/resources/mapper/airbottle/DbUsageRecordMapper.xml

+ 6 - 0
zd-model/src/main/java/com/zd/model/page/PageQuery.java

@@ -27,4 +27,10 @@ public class PageQuery implements Serializable {
      */
      */
     @ApiModelProperty("页大小")
     @ApiModelProperty("页大小")
     private Integer pageSize = 10;
     private Integer pageSize = 10;
+
+    /**
+     * 查询条件
+     */
+    @ApiModelProperty("关键字")
+    private String searchValue;
 }
 }

+ 16 - 0
zd-modules/zd-airbottle/pom.xml

@@ -64,6 +64,22 @@
             <artifactId>gson</artifactId>
             <artifactId>gson</artifactId>
         </dependency>
         </dependency>
 
 
+        <!-- mybatis plus -->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>mybatis</artifactId>
+                    <groupId>org.mybatis</groupId>
+                </exclusion>
+                <exclusion>
+                    <artifactId>jsqlparser</artifactId>
+                    <groupId>com.github.jsqlparser</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
         <dependency>
         <dependency>
             <groupId>com.google.zxing</groupId>
             <groupId>com.google.zxing</groupId>
             <artifactId>core</artifactId>
             <artifactId>core</artifactId>

+ 26 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/CodeGenerator.java

@@ -0,0 +1,26 @@
+package com.zd.airbottle;
+
+
+import com.zd.common.core.mybatisplus.MybatisPlusGenerator;
+
+import java.net.URL;
+
+/**
+ * <p>代码生成</p>
+ *
+ * @author: linft
+ * @date: 2020/11/4
+ * @since:
+ */
+public class CodeGenerator {
+
+    public static void main(String[] args) {
+        //要生成的表名
+        String[] tables = {"db_usage_record"};
+        //表前缀,若不想生成在实体里,添加前缀,如:sys_user, 前缀为:sys_
+        String tablePrefix = "";
+        URL url = CodeGenerator.class.getResource("");
+        MybatisPlusGenerator.generator(tables,tablePrefix, url);
+    }
+
+}

+ 133 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/controller/DbBottleController.java

@@ -0,0 +1,133 @@
+package com.zd.airbottle.controller;
+
+import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zd.airbottle.domain.DbBottle;
+import com.zd.airbottle.domain.bo.DbBottleBo;
+import com.zd.airbottle.service.DbBottleService;
+import com.zd.airbottle.utils.PageUtil;
+import com.zd.common.core.annotation.Log;
+import com.zd.common.core.log.BusinessType;
+import com.zd.common.core.utils.StringUtils;
+import com.zd.common.core.web.controller.AbstractController;
+import com.zd.model.domain.ResultData;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @Description 东北大学定制气瓶控制类
+ * @Author hzw
+ * @Date 2023/10/16 17:46
+ * @Version 2.0
+ */
+@Api(tags = "东北大学定制气瓶控制类")
+@RestController
+@RequestMapping("/bottle")
+public class DbBottleController extends AbstractController {
+
+    private static final String PREFIX = "QP";
+
+    @Autowired
+    private DbBottleService dbBottleService;
+
+
+    /**
+     * 添加气瓶
+     *
+     * @param dbBottleBo
+     * @return
+     */
+    @ApiOperation(value = "添加气瓶", tags = "参数说明:gasName 气体名称,level 级别,size 规格,bottleCode 气瓶编号,gasComposition 气体成分 ")
+    @Log(title = "添加气瓶", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/add")
+    public ResultData add(@RequestBody DbBottleBo dbBottleBo) {
+        //参数检查
+        paramCheck.notNull(dbBottleBo).strNotEmpty(dbBottleBo.getGasName()).notNull(dbBottleBo.getLevel()).notNull(dbBottleBo.getSize());
+        DbBottle dbBottle = new DbBottle();
+        BeanUtils.copyProperties(dbBottleBo, dbBottle);
+        dbBottle.setIsDeleted(Boolean.FALSE);
+        if (dbBottleService.save(dbBottle)) {
+            return ResultData.success("操作成功");
+        }
+        return ResultData.fail("操作失败");
+    }
+
+
+    /**
+     * 更新气瓶
+     *
+     * @Param [dbBottleBo]
+     * @Return com.zd.model.domain.ResultData
+     **/
+    @ApiOperation(value = "更新气瓶", tags = "参数说明:id 必填,gasName 气体名称,level 级别,size 规格,bottleCode 气瓶编号,gasComposition 气体成分 ")
+    @Log(title = "更新气瓶", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/update")
+    public ResultData update(@RequestBody DbBottleBo dbBottleBo) {
+        //参数检查
+        paramCheck.notNull(dbBottleBo).notNull(dbBottleBo.getId()).strNotEmpty(dbBottleBo.getGasName()).notNull(dbBottleBo.getLevel()).notNull(dbBottleBo.getSize());
+        DbBottle dbBottle = new DbBottle();
+        BeanUtils.copyProperties(dbBottleBo, dbBottle);
+        if (dbBottleService.saveOrUpdate(dbBottle)) {
+            return ResultData.success("操作成功");
+        }
+        return ResultData.fail("操作失败");
+    }
+
+    /**
+     * 通过ID获取气瓶详情
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "通过ID获取气瓶详情", tags = "参数说明:id 必填")
+    @GetMapping(value = "/findById")
+    public ResultData find(@RequestParam("id") Long id) {
+        paramCheck.notNull(id);
+        DbBottle dbBottle = dbBottleService.getById(id);
+        return ResultData.success(dbBottle);
+    }
+
+    /**
+     * 获取气瓶list
+     *
+     * @param dbBottleBo
+     * @return
+     */
+    @ApiOperation(value = "获取气瓶list", tags = "参数说明:searchValue 关键字")
+    @PostMapping(value = "/list")
+    public ResultData list(@RequestBody DbBottleBo dbBottleBo) {
+        //查询条件
+        LambdaQueryWrapper<DbBottle> queryWrapper = new LambdaQueryWrapper<>();
+        //gasName条件
+        if (StringUtils.isNotBlank(dbBottleBo.getSearchValue())) {
+            queryWrapper.like(DbBottle::getGasName, dbBottleBo.getSearchValue());
+        }
+        //过滤物理删除数据及倒叙
+        queryWrapper.eq(DbBottle::getIsDeleted, Boolean.FALSE).orderByDesc(DbBottle::getId);
+        IPage<DbBottle> result = dbBottleService.page(PageUtil.getQuery(dbBottleBo.getPageNum(), dbBottleBo.getPageSize()), queryWrapper);
+        return ResultData.success(result);
+    }
+
+    /**
+     * 通过Id删除气瓶
+     *
+     * @param dbBottleBo
+     * @return
+     */
+    @ApiOperation(value = "通过Id删除气瓶", tags = "参数说明:id 必填")
+    @Log(title = "通过Id删除气瓶", businessType = BusinessType.DELETE)
+    @PostMapping(value = "/delete")
+    public ResultData delete(@RequestBody DbBottleBo dbBottleBo) {
+        paramCheck.notNull(dbBottleBo).notNull(dbBottleBo.getId());
+        boolean bool = dbBottleService.removeById(dbBottleBo.getId());
+        if (bool) {
+            return ResultData.success("操作成功");
+        }
+        return ResultData.fail("操作失败");
+    }
+
+}

+ 147 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/controller/DbInOutRecordController.java

@@ -0,0 +1,147 @@
+package com.zd.airbottle.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zd.airbottle.domain.DbBottle;
+import com.zd.airbottle.domain.DbInOutRecord;
+import com.zd.airbottle.domain.DbStock;
+import com.zd.airbottle.domain.bo.DbInOutRecordBo;
+import com.zd.airbottle.domain.bo.DbInOutRecordParam;
+import com.zd.airbottle.service.DbBottleService;
+import com.zd.airbottle.service.DbInOutRecordService;
+import com.zd.airbottle.service.DbStockService;
+import com.zd.airbottle.utils.PageUtil;
+import com.zd.common.core.utils.StringUtils;
+import com.zd.common.core.web.controller.AbstractController;
+import com.zd.model.domain.ResultData;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Objects;
+
+/**
+ * @Description 东北大学入库出库记录控制类
+ * @Author hzw
+ * @Date 2023/10/16 17:47
+ * @Version 2.0
+ */
+@Api(tags = "东北大学入库出库记录控制类")
+@RestController
+@RequestMapping("/inOutRecord")
+public class DbInOutRecordController extends AbstractController {
+
+//    @Autowired
+//    private DbBottleService dbBottleService;
+
+    @Autowired
+    private DbStockService dbStockService;
+
+    @Autowired
+    private DbInOutRecordService dbInOutRecordService;
+
+    /**
+     * 气瓶入库
+     *
+     * @param dbInOutRecordBo
+     * @return
+     */
+    @ApiOperation(value = "气瓶入库", tags = "参数说明:gasName 气体名称,level 级别,size 规格,bottleCode 气瓶编号 ")
+    @PostMapping(value = "/enter")
+    public ResultData in(@RequestBody DbInOutRecordBo dbInOutRecordBo) {
+        //参数检查
+        paramCheck.notNull(dbInOutRecordBo).notNull(dbInOutRecordBo.getType()).strNotEmpty(dbInOutRecordBo.getGasName()).notNull(dbInOutRecordBo.getBottleCode()).notNull(dbInOutRecordBo.getBeaconTag()).notNull(dbInOutRecordBo.getSubjectId());
+        //检查气瓶编号是否被占用
+//        long count = dbBottleService.count(new LambdaQueryWrapper<DbBottle>().eq(DbBottle::getBottleCode, dbInOutRecordBo.getBottleCode()));
+//        if (count == 0) {
+//            return ResultData.success("此气瓶码不存在,请扫描已录入气瓶码!");
+//        }
+        long count1 = dbStockService.count(new LambdaQueryWrapper<DbStock>().eq(DbStock::getBottleCode, dbInOutRecordBo.getBottleCode()));
+        if (count1 > 0) {
+            return ResultData.success("此气瓶码已经绑定!");
+        }
+        //验证信标
+        long count2 = dbStockService.count(new LambdaQueryWrapper<DbStock>().eq(DbStock::getBeaconTag, dbInOutRecordBo.getBeaconTag()));
+        if (count2 > 0) {
+            return ResultData.success("当前信标已绑定!");
+        }
+        DbInOutRecord dbInOutRecord = new DbInOutRecord();
+        BeanUtils.copyProperties(dbInOutRecordBo, dbInOutRecord);
+        boolean a = dbInOutRecordService.save(dbInOutRecord);
+
+        DbStock dbStock = new DbStock();
+        BeanUtils.copyProperties(dbInOutRecordBo, dbStock);
+        boolean b = dbStockService.save(dbStock);
+        if (a && b) {
+            return ResultData.success("操作成功");
+        }
+        return ResultData.fail("操作失败");
+    }
+
+    /**
+     * 气瓶出库
+     *
+     * @param dbInOutRecordBo
+     * @return
+     */
+    @ApiOperation(value = "气瓶出库", tags = "参数说明:gasName 气体名称,level 级别,size 规格,bottleCode 气瓶编号 ")
+    @PostMapping(value = "/out")
+    public ResultData out(@RequestBody DbInOutRecordBo dbInOutRecordBo) {
+        //参数检查
+        paramCheck.notNull(dbInOutRecordBo).notNull(dbInOutRecordBo.getStockId()).notNull(dbInOutRecordBo.getType());
+        DbStock stock = dbStockService.getById(dbInOutRecordBo.getStockId());
+        DbInOutRecord dbInOutRecord = new DbInOutRecord();
+        BeanUtils.copyProperties(stock, dbInOutRecord);
+        dbInOutRecord.setType(2);
+        boolean a = dbInOutRecordService.save(dbInOutRecord);
+        boolean b = dbStockService.removeById(dbInOutRecord.getId());
+        if (a && b) {
+            return ResultData.success("出库成功");
+        }
+        return ResultData.fail("出库失败");
+    }
+
+    /**
+     * 通过ID获取出入库详情
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "通过ID获取出入库详情", tags = "参数说明:id 必填")
+    @GetMapping(value = "/findById")
+    public ResultData find(@RequestParam("id") Long id) {
+        paramCheck.notNull(id);
+        DbInOutRecord dbInOutRecord = dbInOutRecordService.getById(id);
+        return ResultData.success(dbInOutRecord);
+    }
+
+    /**
+     * 获取出入库list
+     *
+     * @param dbInOutRecordParam
+     * @return
+     */
+    @ApiOperation(value = "获取出入库list", tags = "参数说明:searchValue 关键字")
+    @PostMapping(value = "/list")
+    public ResultData list(@RequestBody DbInOutRecordParam dbInOutRecordParam) {
+        //查询条件
+        LambdaQueryWrapper<DbInOutRecord> queryWrapper = new LambdaQueryWrapper<>();
+        //操作人 联系电话 气瓶编号 气瓶名称
+        if (StringUtils.isNotBlank(dbInOutRecordParam.getSearchValue())) {
+            queryWrapper.like(DbInOutRecord::getGasName, dbInOutRecordParam.getSearchValue()).or().like(DbInOutRecord::getOperator, dbInOutRecordParam.getSearchValue()).or().like(DbInOutRecord::getPhone, dbInOutRecordParam.getSearchValue()).or().like(DbInOutRecord::getBottleCode, dbInOutRecordParam.getSearchValue());
+        }
+
+        if (Objects.nonNull(dbInOutRecordParam.getCollegeId())) {
+            queryWrapper.eq(DbInOutRecord::getCollegeId, dbInOutRecordParam.getCollegeId());
+        }
+        if (Objects.nonNull(dbInOutRecordParam.getStartTime()) && Objects.nonNull(dbInOutRecordParam.getEndTime())) {
+            queryWrapper.between(DbInOutRecord::getCreateTime, dbInOutRecordParam.getStartTime(), dbInOutRecordParam.getEndTime());
+        }
+        //倒叙
+        queryWrapper.orderByDesc(DbInOutRecord::getId);
+        IPage<DbInOutRecord> result = dbInOutRecordService.page(PageUtil.getQuery(dbInOutRecordParam.getPageNum(), dbInOutRecordParam.getPageSize()), queryWrapper);
+        return ResultData.success(result);
+    }
+}

+ 134 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/controller/DbStockController.java

@@ -0,0 +1,134 @@
+package com.zd.airbottle.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zd.airbottle.domain.DbStock;
+import com.zd.airbottle.domain.bo.DbStockBo;
+import com.zd.airbottle.domain.bo.DbStockParam;
+import com.zd.airbottle.service.DbStockService;
+import com.zd.airbottle.utils.PageUtil;
+import com.zd.common.core.annotation.Log;
+import com.zd.common.core.log.BusinessType;
+import com.zd.common.core.utils.StringUtils;
+import com.zd.common.core.web.controller.AbstractController;
+import com.zd.model.domain.ResultData;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @Description 东北大学库存控制类
+ * @Author hzw
+ * @Date 2023/10/16 17:50
+ * @Version 2.0
+ */
+@Api(tags = "东北大学库存控制类")
+@RestController
+@RequestMapping("/stock")
+public class DbStockController extends AbstractController {
+    @Autowired
+    private DbStockService dbStockService;
+
+    /**
+     * 更新库存信息
+     *
+     * @Param [dbStockBo]
+     * @Return com.zd.model.domain.ResultData
+     **/
+    @ApiOperation(value = "更新气瓶", tags = "参数说明:id 必填,gasName 气体名称,level 级别,size 规格,bottleCode 气瓶编号,gasComposition 气体成分 ")
+    @Log(title = "更新气瓶", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/update")
+    public ResultData update(@RequestBody DbStockBo dbStockBo) {
+        //参数检查
+        paramCheck.notNull(dbStockBo).notNull(dbStockBo.getId()).notNull(dbStockBo.getBeaconTag());
+        long count = dbStockService.count(new LambdaQueryWrapper<DbStock>().eq(DbStock::getBeaconTag, dbStockBo.getBeaconTag()));
+        if (count > 0) {
+            return ResultData.success("信标标签已存在!");
+        }
+        if (dbStockService.update(new LambdaUpdateWrapper<DbStock>().eq(DbStock::getId, dbStockBo.getId()).set(DbStock::getBeaconTag, dbStockBo.getBeaconTag()))) {
+            return ResultData.success("操作成功");
+        }
+        return ResultData.fail("操作失败");
+    }
+
+    /**
+     * 通过ID获取库存详情
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "通过ID获取库存详情", tags = "参数说明:库存id 必填")
+    @GetMapping(value = "/findById")
+    public ResultData find(@RequestParam("id") Long id) {
+        paramCheck.notNull(id);
+        DbStock dbStock = dbStockService.getById(id);
+        return ResultData.success(dbStock);
+    }
+
+    /**
+     * 获取库存list
+     *
+     * @param dbStockParam
+     * @return
+     */
+    @ApiOperation(value = "获取库存list", tags = "参数说明:searchValue 关键字")
+    @PostMapping(value = "/list")
+    public ResultData list(@RequestBody DbStockParam dbStockParam) {
+        //查询条件
+        LambdaQueryWrapper<DbStock> queryWrapper = new LambdaQueryWrapper<>();
+        //气瓶编号 气瓶名称 实验室名称
+        if (StringUtils.isNotBlank(dbStockParam.getSearchValue())) {
+            queryWrapper.like(DbStock::getGasName, dbStockParam.getSearchValue()).or().like(DbStock::getSubjectName, dbStockParam.getSearchValue()).or().like(DbStock::getBottleCode, dbStockParam.getSearchValue());
+        }
+        if (Objects.nonNull(dbStockParam.getCollegeId())) {
+            queryWrapper.eq(DbStock::getCollegeId, dbStockParam.getCollegeId());
+        }
+        if (Objects.nonNull(dbStockParam.getStartTime()) && Objects.nonNull(dbStockParam.getEndTime())) {
+            queryWrapper.between(DbStock::getValidPeriod, dbStockParam.getStartTime(), dbStockParam.getEndTime());
+        }
+        //倒叙
+        queryWrapper.orderByDesc(DbStock::getId);
+        IPage<DbStock> result = dbStockService.page(PageUtil.getQuery(dbStockParam.getPageNum(), dbStockParam.getPageSize()), queryWrapper);
+        return ResultData.success(result);
+    }
+
+    /**
+     * 通过Id删除库存信息
+     *
+     * @param dbStockBo
+     * @return
+     */
+    @ApiOperation(value = "通过Id删除库存信息", tags = "参数说明:id 必填")
+    @Log(title = "通过Id删除库存信息", businessType = BusinessType.DELETE)
+    @PostMapping(value = "/delete")
+    public ResultData delete(@RequestBody DbStockBo dbStockBo) {
+        paramCheck.notNull(dbStockBo).notNull(dbStockBo.getId());
+        boolean bool = dbStockService.removeById(dbStockBo.getId());
+        if (bool) {
+            return ResultData.success("操作成功");
+        }
+        return ResultData.fail("操作失败");
+    }
+
+    /**
+     * 通过subId查询库存列表
+     *
+     * @param subId
+     * @return
+     */
+    @ApiOperation(value = "通过subId查询库存列表", tags = "参数说明:subId 必填")
+    @GetMapping(value = "/findBySubId")
+    public ResultData findBySubId(@RequestParam("subId") Long subId) {
+        paramCheck.notNull(subId);
+        LambdaQueryWrapper<DbStock> queryWrapper = new LambdaQueryWrapper();
+        queryWrapper.eq(DbStock::getSubjectId,subId);
+        List<DbStock> list = dbStockService.list(queryWrapper);
+        return ResultData.success(list);
+    }
+
+}

+ 140 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/controller/DbUsageRecordController.java

@@ -0,0 +1,140 @@
+package com.zd.airbottle.controller;
+
+import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.zd.airbottle.domain.DbBottle;
+import com.zd.airbottle.domain.DbStock;
+import com.zd.airbottle.domain.DbUsageRecord;
+import com.zd.airbottle.domain.bo.DbBottleBo;
+import com.zd.airbottle.domain.bo.DbUsageRecordBo;
+import com.zd.airbottle.service.DbUsageRecordService;
+import com.zd.airbottle.utils.PageUtil;
+import com.zd.common.core.annotation.Log;
+import com.zd.common.core.log.BusinessType;
+import com.zd.common.core.utils.StringUtils;
+import com.zd.common.core.web.controller.AbstractController;
+import com.zd.model.domain.ResultData;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Objects;
+
+/**
+ * @Description 东北大学使用记录控制类
+ * @Author hzw
+ * @Date 2023/10/16 17:52
+ * @Version 2.0
+ */
+@Api(tags = "东北大学使用记录控制类")
+@RestController
+@RequestMapping("/usageRecord")
+public class DbUsageRecordController extends AbstractController {
+
+    @Autowired
+    private DbUsageRecordService dbUsageRecordService;
+
+    /**
+     * 添加使用记录
+     *
+     * @param dbUsageRecordBo
+     * @return
+     */
+    @ApiOperation(value = "添加使用记录", tags = "参数说明:")
+    @Log(title = "添加使用记录", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/add")
+    public ResultData add(@RequestBody DbUsageRecordBo dbUsageRecordBo) {
+        //参数检查
+        paramCheck.notNull(dbUsageRecordBo).notNull(dbUsageRecordBo.getStartTime()).notNull(dbUsageRecordBo.getEndTime());
+        DbUsageRecord dbUsageRecord = new DbUsageRecord();
+        BeanUtils.copyProperties(dbUsageRecordBo, dbUsageRecord);
+        if (dbUsageRecordService.save(dbUsageRecord)) {
+            return ResultData.success("操作成功");
+        }
+        return ResultData.fail("操作失败");
+    }
+
+
+    /**
+     * 更新使用记录
+     *
+     * @Param [dbUsageRecordBo]
+     * @Return com.zd.model.domain.ResultData
+     **/
+    @ApiOperation(value = "更新使用记录", tags = "参数说明:id 必填")
+    @Log(title = "更新使用记录", businessType = BusinessType.UPDATE)
+    @PostMapping(value = "/update")
+    public ResultData update(@RequestBody DbUsageRecordBo dbUsageRecordBo) {
+        //参数检查
+        paramCheck.notNull(dbUsageRecordBo).notNull(dbUsageRecordBo.getId());
+        DbUsageRecord dbUsageRecord = new DbUsageRecord();
+        BeanUtils.copyProperties(dbUsageRecordBo, dbUsageRecord);
+        if (dbUsageRecordService.saveOrUpdate(dbUsageRecord)) {
+            return ResultData.success("操作成功");
+        }
+        return ResultData.fail("操作失败");
+    }
+
+    /**
+     * 通过ID获取使用详情
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "通过ID获取使用详情", tags = "参数说明:id 必填")
+    @GetMapping(value = "/findById")
+    public ResultData find(@RequestParam("id") Long id) {
+        paramCheck.notNull(id);
+        DbUsageRecord dbUsageRecord = dbUsageRecordService.getById(id);
+        return ResultData.success(dbUsageRecord);
+    }
+
+    /**
+     * 获取使用记录列表
+     *
+     * @param dbUsageRecordBo
+     * @return
+     */
+    @ApiOperation(value = "获取使用记录列表", tags = "参数说明:searchValue 关键字")
+    @PostMapping(value = "/list")
+    public ResultData list(@RequestBody DbUsageRecordBo dbUsageRecordBo) {
+        //查询条件
+        LambdaQueryWrapper<DbUsageRecord> queryWrapper = new LambdaQueryWrapper<>();
+        //气瓶编号 气瓶名称 实验室名称
+        if (StringUtils.isNotBlank(dbUsageRecordBo.getSearchValue())) {
+            queryWrapper.like(DbUsageRecord::getGasName, dbUsageRecordBo.getSearchValue()).or().like(DbUsageRecord::getSubjectName, dbUsageRecordBo.getSearchValue()).or().like(DbUsageRecord::getBottleCode, dbUsageRecordBo.getSearchValue());
+        }
+        if (Objects.nonNull(dbUsageRecordBo.getCollegeId())) {
+            queryWrapper.eq(DbUsageRecord::getCollegeId, dbUsageRecordBo.getCollegeId());
+        }
+        if (Objects.nonNull(dbUsageRecordBo.getStartTime()) && Objects.nonNull(dbUsageRecordBo.getEndTime())) {
+            queryWrapper.between(DbUsageRecord::getStartTime, dbUsageRecordBo.getStartTime(), dbUsageRecordBo.getEndTime());
+        }
+        //过滤物理删除数据及倒叙
+        queryWrapper.orderByDesc(DbUsageRecord::getId);
+        IPage<DbUsageRecord> result = dbUsageRecordService.page(PageUtil.getQuery(dbUsageRecordBo.getPageNum(), dbUsageRecordBo.getPageSize()), queryWrapper);
+        return ResultData.success(result);
+    }
+
+    /**
+     * 通过Id删除使用记录
+     *
+     * @param dbUsageRecordBo
+     * @return
+     */
+    @ApiOperation(value = "通过Id删除使用记录", tags = "参数说明:id 必填")
+    @Log(title = "通过Id删除使用记录", businessType = BusinessType.DELETE)
+    @PostMapping(value = "/delete")
+    public ResultData delete(@RequestBody DbUsageRecordBo dbUsageRecordBo) {
+        paramCheck.notNull(dbUsageRecordBo).notNull(dbUsageRecordBo.getId());
+        boolean bool = dbUsageRecordService.removeById(dbUsageRecordBo.getId());
+        if (bool) {
+            return ResultData.success("操作成功");
+        }
+        return ResultData.fail("操作失败");
+    }
+
+}

+ 82 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/DbBottle.java

@@ -0,0 +1,82 @@
+package com.zd.airbottle.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 气瓶表
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+@Getter
+@Setter
+@TableName("db_bottle")
+@ApiModel(value = "DbBottle对象", description = "气瓶表")
+public class DbBottle extends Model<DbBottle> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键id")
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    @ApiModelProperty("气体名称")
+    private String gasName;
+
+    @ApiModelProperty("级别()")
+    private Integer level;
+
+    @ApiModelProperty("规格")
+    private Integer size;
+
+    @ApiModelProperty("气瓶编号")
+    private String bottleCode;
+
+    @ApiModelProperty("气体成分")
+    private String gasComposition;
+
+    @ApiModelProperty("创建人名称")
+    private String createName;
+
+    @ApiModelProperty("创建人ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createBy;
+
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("修改人名称")
+    private String updateName;
+
+    @ApiModelProperty("修改人ID")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long updateBy;
+
+    @ApiModelProperty("修改时间")
+    @TableField(fill = FieldFill.UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty("是否删除(0否 1是)")
+    private Boolean isDeleted;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 118 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/DbInOutRecord.java

@@ -0,0 +1,118 @@
+package com.zd.airbottle.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 出入库记录表
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+@Getter
+@Setter
+@TableName("db_in_out_record")
+@ApiModel(value = "DbInOutRecord对象", description = "出入库记录表")
+public class DbInOutRecord extends Model<DbInOutRecord> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键id")
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    @ApiModelProperty("级别(1入库 2出库)")
+    private Integer type;
+
+    @ApiModelProperty("气体名称")
+    private String gasName;
+
+    @ApiModelProperty("级别()")
+    private Integer level;
+
+    @ApiModelProperty("规格")
+    private Integer size;
+
+    @ApiModelProperty("气瓶编号")
+    private String bottleCode;
+
+    @ApiModelProperty("气体成分")
+    private String gasComposition;
+
+    @ApiModelProperty("学院id")
+    private Long collegeId;
+
+    @ApiModelProperty("学院名称")
+    private String collegeName;
+
+    @ApiModelProperty("实验室id")
+    private Long subjectId;
+
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+    @ApiModelProperty("房间号")
+    private String roomNum;
+
+    @ApiModelProperty("信标标签")
+    private String beaconTag;
+
+    @ApiModelProperty("操作人id")
+    private String operatorId;
+
+    @ApiModelProperty("操作人")
+    private String operator;
+
+    @ApiModelProperty("联系方式")
+    private String phone;
+
+    @ApiModelProperty("有效期限")
+    private LocalDateTime validPeriod;
+
+    @ApiModelProperty("气体压力")
+    private Integer gasPressure;
+
+    @ApiModelProperty("创建人名称")
+    private String createName;
+
+    @ApiModelProperty("创建人ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createBy;
+
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("修改人名称")
+    private String updateName;
+
+    @ApiModelProperty("修改人ID")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long updateBy;
+
+    @ApiModelProperty("修改时间")
+    @TableField(fill = FieldFill.UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 118 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/DbStock.java

@@ -0,0 +1,118 @@
+package com.zd.airbottle.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 库存表
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+@Getter
+@Setter
+@TableName("db_stock")
+@ApiModel(value = "DbStock对象", description = "库存表")
+public class DbStock extends Model<DbStock> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键id")
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    @ApiModelProperty("气瓶编号")
+    private Long bottleCode;
+
+    @ApiModelProperty("气体名称")
+    private String gasName;
+
+    @ApiModelProperty("级别()")
+    private Integer level;
+
+    @ApiModelProperty("规格")
+    private Integer size;
+
+    @ApiModelProperty("气瓶颜色")
+    private String bottleColour;
+
+    @ApiModelProperty("手轮(0否 1是)")
+    private Boolean handwheel;
+
+    @ApiModelProperty("固定(0否 1是)")
+    private Boolean fixed;
+
+    @ApiModelProperty("状态标牌(0否 1是)")
+    private Boolean statusLabel;
+
+    @ApiModelProperty("电子标签(0否 1是)")
+    private Boolean electronicTag;
+
+    @ApiModelProperty("气体压力")
+    private Integer gasPressure;
+
+    @ApiModelProperty("有效期限")
+    private LocalDateTime validPeriod;
+
+    @ApiModelProperty("信标标签")
+    private String beaconTag;
+
+    @ApiModelProperty("学院id")
+    private Long collegeId;
+
+    @ApiModelProperty("学院名称")
+    private String collegeName;
+
+    @ApiModelProperty("实验室id")
+    private Long subjectId;
+
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+    @ApiModelProperty("房间号")
+    private String roomNum;
+
+    @ApiModelProperty("创建人名称")
+    private String createName;
+
+    @ApiModelProperty("创建人ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createBy;
+
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("修改人名称")
+    private String updateName;
+
+    @ApiModelProperty("修改人ID")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long updateBy;
+
+    @ApiModelProperty("修改时间")
+    @TableField(fill = FieldFill.UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 124 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/DbUsageRecord.java

@@ -0,0 +1,124 @@
+package com.zd.airbottle.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+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 com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 使用记录表
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+@Getter
+@Setter
+@TableName("db_usage_record")
+@ApiModel(value = "DbUsageRecord对象", description = "使用记录表")
+public class DbUsageRecord extends Model<DbUsageRecord> {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键id")
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    @ApiModelProperty("气体名称")
+    private String gasName;
+
+    @ApiModelProperty("使用量")
+    private Integer usageAmount;
+
+    @ApiModelProperty("级别()")
+    private Integer level;
+
+    @ApiModelProperty("规格")
+    private Integer size;
+
+    @ApiModelProperty("气瓶编号")
+    private String bottleCode;
+
+    @ApiModelProperty("气体成分")
+    private String gasComposition;
+
+    @ApiModelProperty("学院id")
+    private Long collegeId;
+
+    @ApiModelProperty("学院名称")
+    private String collegeName;
+
+    @ApiModelProperty("实验室id")
+    private Long subjectId;
+
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+    @ApiModelProperty("房间号")
+    private String roomNum;
+
+    @ApiModelProperty("信标标签")
+    private String beaconTag;
+
+    @ApiModelProperty("操作人id")
+    private String operatorId;
+
+    @ApiModelProperty("操作人")
+    private String operator;
+
+    @ApiModelProperty("联系方式")
+    private String phone;
+
+    @ApiModelProperty("气体压力")
+    private Integer gasPressure;
+
+    @ApiModelProperty("开始时间")
+    private LocalDateTime startTime;
+
+    @ApiModelProperty("结束时间")
+    private LocalDateTime endTime;
+
+    @ApiModelProperty("使用图片")
+    private String usageImg;
+
+    @ApiModelProperty("创建人名称")
+    private String createName;
+
+    @ApiModelProperty("创建人ID")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createBy;
+
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("修改人名称")
+    private String updateName;
+
+    @ApiModelProperty("修改人ID")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long updateBy;
+
+    @ApiModelProperty("修改时间")
+    @TableField(fill = FieldFill.UPDATE)
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+
+    @Override
+    public Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 41 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/bo/DbBottleBo.java

@@ -0,0 +1,41 @@
+package com.zd.airbottle.domain.bo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Description 东北大学气瓶业务类
+ * @Author hzw
+ * @Date 2023/10/17 9:22
+ * @Version 2.0
+ */
+@ApiModel("东北大学气瓶业务类")
+@Data
+public class DbBottleBo extends PageQuery implements Serializable {
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty("主键id")
+    private Long id;
+
+    @ApiModelProperty("气体名称")
+    private String gasName;
+
+    @ApiModelProperty("级别()")
+    private Integer level;
+
+    @ApiModelProperty("规格")
+    private Integer size;
+
+    @ApiModelProperty("气瓶编号")
+    private String bottleCode;
+
+    @ApiModelProperty("气体成分")
+    private String gasComposition;
+
+}

+ 92 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/bo/DbInOutRecordBo.java

@@ -0,0 +1,92 @@
+package com.zd.airbottle.domain.bo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @Description TODO
+ * @Author hzw
+ * @Date 2023/10/17 10:57
+ * @Version 2.0
+ */
+@Data
+public class DbInOutRecordBo {
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("库存id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long stockId;
+
+    @ApiModelProperty("级别(1入库 2出库)")
+    private Integer type;
+
+    @ApiModelProperty("气体名称")
+    private String gasName;
+
+    @ApiModelProperty("级别()")
+    private Integer level;
+
+    @ApiModelProperty("规格")
+    private Integer size;
+
+    @ApiModelProperty("气瓶编号")
+    private Long bottleCode;
+
+    @ApiModelProperty("气体成分")
+    private String gasComposition;
+
+    @ApiModelProperty("气瓶颜色")
+    private String bottleColour;
+
+    @ApiModelProperty("手轮(0否 1是)")
+    private Boolean handwheel;
+
+    @ApiModelProperty("固定(0否 1是)")
+    private Boolean fixed;
+
+    @ApiModelProperty("状态标牌(0否 1是)")
+    private Boolean statusLabel;
+
+    @ApiModelProperty("电子标签(0否 1是)")
+    private Boolean electronicTag;
+
+    @ApiModelProperty("气体压力")
+    private Integer gasPressure;
+
+    @ApiModelProperty("有效期限")
+    private LocalDateTime validPeriod;
+
+    @ApiModelProperty("信标标签")
+    private String beaconTag;
+
+    @ApiModelProperty("学院id")
+    private Long collegeId;
+
+    @ApiModelProperty("学院名称")
+    private String collegeName;
+
+    @ApiModelProperty("实验室id")
+    private Long subjectId;
+
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+    @ApiModelProperty("房间号")
+    private String roomNum;
+
+    @ApiModelProperty("操作人id")
+    private String operatorId;
+
+    @ApiModelProperty("操作人")
+    private String operator;
+
+    @ApiModelProperty("备注")
+    private String remark;
+}

+ 33 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/bo/DbInOutRecordParam.java

@@ -0,0 +1,33 @@
+package com.zd.airbottle.domain.bo;
+
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @Description 出入库记录列表请求参数
+ * @Author hzw
+ * @Date 2023/10/17 14:17
+ * @Version 2.0
+ */
+@Data
+@ApiModel("出入库记录列表请求参数")
+public class DbInOutRecordParam extends PageQuery implements Serializable {
+
+    @ApiModelProperty("级别(1入库 2出库)")
+    private Integer type;
+
+    @ApiModelProperty("学院id")
+    private Long collegeId;
+
+    @ApiModelProperty("开始时间")
+    private LocalDateTime startTime;
+
+    @ApiModelProperty("结束时间")
+    private LocalDateTime endTime;
+
+}

+ 86 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/bo/DbStockBo.java

@@ -0,0 +1,86 @@
+package com.zd.airbottle.domain.bo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.zd.airbottle.utils.PageUtil;
+import com.zd.model.page.PageDomain;
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @Description 东北大学库存业务类
+ * @Author hzw
+ * @Date 2023/10/17 10:02
+ * @Version 2.0
+ */
+@Data
+@ApiModel("东北大学库存业务类")
+public class DbStockBo extends PageQuery implements Serializable {
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("气瓶编号")
+    private Long bottleCode;
+
+    @ApiModelProperty("气体名称")
+    private String gasName;
+
+    @ApiModelProperty("级别()")
+    private Integer level;
+
+    @ApiModelProperty("规格")
+    private Integer size;
+
+    @ApiModelProperty("气瓶颜色")
+    private String bottleColour;
+
+    @ApiModelProperty("手轮(0否 1是)")
+    private Boolean handwheel;
+
+    @ApiModelProperty("固定(0否 1是)")
+    private Boolean fixed;
+
+    @ApiModelProperty("状态标牌(0否 1是)")
+    private Boolean statusLabel;
+
+    @ApiModelProperty("电子标签(0否 1是)")
+    private Boolean electronicTag;
+
+    @ApiModelProperty("气体压力")
+    private Integer gasPressure;
+
+    @ApiModelProperty("有效期限")
+    private LocalDateTime validPeriod;
+
+    @ApiModelProperty("信标标签")
+    private String beaconTag;
+
+    @ApiModelProperty("学院id")
+    private Long collegeId;
+
+    @ApiModelProperty("学院名称")
+    private String collegeName;
+
+    @ApiModelProperty("实验室id")
+    private Long subjectId;
+
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+    @ApiModelProperty("房间号")
+    private String roomNum;
+
+    @ApiModelProperty("备注")
+    private String remark;
+}

+ 29 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/bo/DbStockParam.java

@@ -0,0 +1,29 @@
+package com.zd.airbottle.domain.bo;
+
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @Description 库存列表入参
+ * @Author hzw
+ * @Date 2023/10/17 14:41
+ * @Version 2.0
+ */
+@Data
+@ApiModel("库存列表入参")
+public class DbStockParam extends PageQuery implements Serializable {
+
+    @ApiModelProperty("学院id")
+    private Long collegeId;
+
+    @ApiModelProperty("开始时间")
+    private LocalDateTime startTime;
+
+    @ApiModelProperty("结束时间")
+    private LocalDateTime endTime;
+}

+ 88 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/domain/bo/DbUsageRecordBo.java

@@ -0,0 +1,88 @@
+package com.zd.airbottle.domain.bo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.zd.model.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @Description 东北大学使用记录业务类
+ * @Author hzw
+ * @Date 2023/10/17 15:08
+ * @Version 2.0
+ */
+@Data
+@ApiModel("东北大学使用记录业务类")
+public class DbUsageRecordBo extends PageQuery implements Serializable {
+
+    @ApiModelProperty("主键id")
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
+
+    @ApiModelProperty("气体名称")
+    private String gasName;
+
+    @ApiModelProperty("使用量")
+    private Integer usageAmount;
+
+    @ApiModelProperty("级别()")
+    private Integer level;
+
+    @ApiModelProperty("规格")
+    private Integer size;
+
+    @ApiModelProperty("气瓶编号")
+    private String bottleCode;
+
+    @ApiModelProperty("气体成分")
+    private String gasComposition;
+
+    @ApiModelProperty("学院id")
+    private Long collegeId;
+
+    @ApiModelProperty("学院名称")
+    private String collegeName;
+
+    @ApiModelProperty("实验室id")
+    private Long subjectId;
+
+    @ApiModelProperty("实验室名称")
+    private String subjectName;
+
+    @ApiModelProperty("房间号")
+    private String roomNum;
+
+    @ApiModelProperty("信标标签")
+    private String beaconTag;
+
+    @ApiModelProperty("操作人id")
+    private String operatorId;
+
+    @ApiModelProperty("操作人")
+    private String operator;
+
+    @ApiModelProperty("联系方式")
+    private String phone;
+
+    @ApiModelProperty("气体压力")
+    private Integer gasPressure;
+
+    @ApiModelProperty("开始时间")
+    private LocalDateTime startTime;
+
+    @ApiModelProperty("结束时间")
+    private LocalDateTime endTime;
+
+    @ApiModelProperty("使用图片")
+    private String usageImg;
+
+    @ApiModelProperty("备注")
+    private String remark;
+}

+ 18 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/mapper/DbBottleMapper.java

@@ -0,0 +1,18 @@
+package com.zd.airbottle.mapper;
+
+import com.zd.airbottle.domain.DbBottle;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 气瓶表 Mapper 接口
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+@Mapper
+public interface DbBottleMapper extends BaseMapper<DbBottle> {
+
+}

+ 18 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/mapper/DbInOutRecordMapper.java

@@ -0,0 +1,18 @@
+package com.zd.airbottle.mapper;
+
+import com.zd.airbottle.domain.DbInOutRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 出入库记录表 Mapper 接口
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+@Mapper
+public interface DbInOutRecordMapper extends BaseMapper<DbInOutRecord> {
+
+}

+ 18 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/mapper/DbStockMapper.java

@@ -0,0 +1,18 @@
+package com.zd.airbottle.mapper;
+
+import com.zd.airbottle.domain.DbStock;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 库存表 Mapper 接口
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+@Mapper
+public interface DbStockMapper extends BaseMapper<DbStock> {
+
+}

+ 18 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/mapper/DbUsageRecordMapper.java

@@ -0,0 +1,18 @@
+package com.zd.airbottle.mapper;
+
+import com.zd.airbottle.domain.DbUsageRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 使用记录表 Mapper 接口
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+@Mapper
+public interface DbUsageRecordMapper extends BaseMapper<DbUsageRecord> {
+
+}

+ 16 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/DbBottleService.java

@@ -0,0 +1,16 @@
+package com.zd.airbottle.service;
+
+import com.zd.airbottle.domain.DbBottle;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 气瓶表 服务类
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+public interface DbBottleService extends IService<DbBottle> {
+
+}

+ 16 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/DbInOutRecordService.java

@@ -0,0 +1,16 @@
+package com.zd.airbottle.service;
+
+import com.zd.airbottle.domain.DbInOutRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 出入库记录表 服务类
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+public interface DbInOutRecordService extends IService<DbInOutRecord> {
+
+}

+ 16 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/DbStockService.java

@@ -0,0 +1,16 @@
+package com.zd.airbottle.service;
+
+import com.zd.airbottle.domain.DbStock;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 库存表 服务类
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+public interface DbStockService extends IService<DbStock> {
+
+}

+ 16 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/DbUsageRecordService.java

@@ -0,0 +1,16 @@
+package com.zd.airbottle.service;
+
+import com.zd.airbottle.domain.DbUsageRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 使用记录表 服务类
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+public interface DbUsageRecordService extends IService<DbUsageRecord> {
+
+}

+ 20 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/impl/DbBottleServiceImpl.java

@@ -0,0 +1,20 @@
+package com.zd.airbottle.service.impl;
+
+import com.zd.airbottle.domain.DbBottle;
+import com.zd.airbottle.mapper.DbBottleMapper;
+import com.zd.airbottle.service.DbBottleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 气瓶表 服务实现类
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+@Service
+public class DbBottleServiceImpl extends ServiceImpl<DbBottleMapper, DbBottle> implements DbBottleService {
+
+}

+ 20 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/impl/DbInOutRecordServiceImpl.java

@@ -0,0 +1,20 @@
+package com.zd.airbottle.service.impl;
+
+import com.zd.airbottle.domain.DbInOutRecord;
+import com.zd.airbottle.mapper.DbInOutRecordMapper;
+import com.zd.airbottle.service.DbInOutRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 出入库记录表 服务实现类
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+@Service
+public class DbInOutRecordServiceImpl extends ServiceImpl<DbInOutRecordMapper, DbInOutRecord> implements DbInOutRecordService {
+
+}

+ 20 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/impl/DbStockServiceImpl.java

@@ -0,0 +1,20 @@
+package com.zd.airbottle.service.impl;
+
+import com.zd.airbottle.domain.DbStock;
+import com.zd.airbottle.mapper.DbStockMapper;
+import com.zd.airbottle.service.DbStockService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 库存表 服务实现类
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+@Service
+public class DbStockServiceImpl extends ServiceImpl<DbStockMapper, DbStock> implements DbStockService {
+
+}

+ 20 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/service/impl/DbUsageRecordServiceImpl.java

@@ -0,0 +1,20 @@
+package com.zd.airbottle.service.impl;
+
+import com.zd.airbottle.domain.DbUsageRecord;
+import com.zd.airbottle.mapper.DbUsageRecordMapper;
+import com.zd.airbottle.service.DbUsageRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 使用记录表 服务实现类
+ * </p>
+ *
+ * @author hzw
+ * @since 2023-10-16
+ */
+@Service
+public class DbUsageRecordServiceImpl extends ServiceImpl<DbUsageRecordMapper, DbUsageRecord> implements DbUsageRecordService {
+
+}

+ 49 - 0
zd-modules/zd-airbottle/src/main/java/com/zd/airbottle/utils/PageUtil.java

@@ -0,0 +1,49 @@
+package com.zd.airbottle.utils;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+ * MybatisPlus分页工具
+ *
+ * @author linft
+ * @since 2023/04/14
+ **/
+public class PageUtil {
+
+    /**
+     * 获取分页对象
+     *
+     * @param <T> 泛型
+     * @return 分页对象
+     */
+    public static <T> IPage<T> getQuery(int page, int pageSize) {
+        return new Page<>(page, pageSize);
+    }
+
+    /**
+     * 获取查询对象
+     *
+     * @param entity 实体
+     * @param <T> 泛型
+     * @return 查询对象
+     */
+    public static <T> Wrapper<T> getWrapper(T entity) {
+        return new QueryWrapper<>(entity);
+    }
+
+    /**
+     * 分页对象转换
+     *
+     * @param page 分页
+     * @return 新分页对象
+     */
+    public static <B, A> IPage<B> toPage(IPage<A> page) {
+        IPage<B> newPage = new Page<>();
+        BeanUtil.copyProperties(page, newPage);
+        return newPage;
+    }
+}

+ 27 - 0
zd-modules/zd-airbottle/src/main/resources/mapper/airbottle/DbBottleMapper.xml

@@ -0,0 +1,27 @@
+<?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.zd.airbottle.mapper.DbBottleMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.zd.airbottle.domain.DbBottle">
+        <id column="id" property="id" />
+        <result column="gas_name" property="gasName" />
+        <result column="level" property="level" />
+        <result column="size" property="size" />
+        <result column="bottle_code" property="bottleCode" />
+        <result column="gas_composition" property="gasComposition" />
+        <result column="create_name" property="createName" />
+        <result column="create_by" property="createBy" />
+        <result column="create_time" property="createTime" />
+        <result column="update_name" property="updateName" />
+        <result column="update_by" property="updateBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="is_deleted" property="isDeleted" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, gas_name, level, size, bottle_code, gas_composition, create_name, create_by, create_time, update_name, update_by, update_time, is_deleted
+    </sql>
+
+</mapper>

+ 39 - 0
zd-modules/zd-airbottle/src/main/resources/mapper/airbottle/DbInOutRecordMapper.xml

@@ -0,0 +1,39 @@
+<?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.zd.airbottle.mapper.DbInOutRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.zd.airbottle.domain.DbInOutRecord">
+        <id column="id" property="id" />
+        <result column="type" property="type" />
+        <result column="gas_name" property="gasName" />
+        <result column="level" property="level" />
+        <result column="size" property="size" />
+        <result column="bottle_code" property="bottleCode" />
+        <result column="gas_composition" property="gasComposition" />
+        <result column="college_id" property="collegeId" />
+        <result column="college_name" property="collegeName" />
+        <result column="subject_id" property="subjectId" />
+        <result column="subject_name" property="subjectName" />
+        <result column="room_num" property="roomNum" />
+        <result column="beacon_tag" property="beaconTag" />
+        <result column="operator_id" property="operatorId" />
+        <result column="operator" property="operator" />
+        <result column="phone" property="phone" />
+        <result column="valid_period" property="validPeriod" />
+        <result column="gas_pressure" property="gasPressure" />
+        <result column="create_name" property="createName" />
+        <result column="create_by" property="createBy" />
+        <result column="create_time" property="createTime" />
+        <result column="update_name" property="updateName" />
+        <result column="update_by" property="updateBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, type, gas_name, level, size, bottle_code, gas_composition, college_id, college_name, subject_id, subject_name, room_num, beacon_tag, operator_id, operator, phone, valid_period, gas_pressure, create_name, create_by, create_time, update_name, update_by, update_time, remark
+    </sql>
+
+</mapper>

+ 39 - 0
zd-modules/zd-airbottle/src/main/resources/mapper/airbottle/DbStockMapper.xml

@@ -0,0 +1,39 @@
+<?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.zd.airbottle.mapper.DbStockMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.zd.airbottle.domain.DbStock">
+        <id column="id" property="id" />
+        <result column="bottle_code" property="bottleCode" />
+        <result column="gas_name" property="gasName" />
+        <result column="level" property="level" />
+        <result column="size" property="size" />
+        <result column="bottle_colour" property="bottleColour" />
+        <result column="handwheel" property="handwheel" />
+        <result column="fixed" property="fixed" />
+        <result column="status_label" property="statusLabel" />
+        <result column="electronic_tag" property="electronicTag" />
+        <result column="gas_pressure" property="gasPressure" />
+        <result column="valid_period" property="validPeriod" />
+        <result column="beacon_tag" property="beaconTag" />
+        <result column="college_id" property="collegeId" />
+        <result column="college_name" property="collegeName" />
+        <result column="subject_id" property="subjectId" />
+        <result column="subject_name" property="subjectName" />
+        <result column="room_num" property="roomNum" />
+        <result column="create_name" property="createName" />
+        <result column="create_by" property="createBy" />
+        <result column="create_time" property="createTime" />
+        <result column="update_name" property="updateName" />
+        <result column="update_by" property="updateBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, bottle_code, gas_name, level, size, bottle_colour, handwheel, fixed, status_label, electronic_tag, gas_pressure, valid_period, beacon_tag, college_id, college_name, subject_id, subject_name, room_num, create_name, create_by, create_time, update_name, update_by, update_time, remark
+    </sql>
+
+</mapper>

+ 41 - 0
zd-modules/zd-airbottle/src/main/resources/mapper/airbottle/DbUsageRecordMapper.xml

@@ -0,0 +1,41 @@
+<?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.zd.airbottle.mapper.DbUsageRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.zd.airbottle.domain.DbUsageRecord">
+        <id column="id" property="id" />
+        <result column="gas_name" property="gasName" />
+        <result column="usage_amount" property="usageAmount" />
+        <result column="level" property="level" />
+        <result column="size" property="size" />
+        <result column="bottle_code" property="bottleCode" />
+        <result column="gas_composition" property="gasComposition" />
+        <result column="college_id" property="collegeId" />
+        <result column="college_name" property="collegeName" />
+        <result column="subject_id" property="subjectId" />
+        <result column="subject_name" property="subjectName" />
+        <result column="room_num" property="roomNum" />
+        <result column="beacon_tag" property="beaconTag" />
+        <result column="operator_id" property="operatorId" />
+        <result column="operator" property="operator" />
+        <result column="phone" property="phone" />
+        <result column="gas_pressure" property="gasPressure" />
+        <result column="start_time" property="startTime" />
+        <result column="end_time" property="endTime" />
+        <result column="usage_img" property="usageImg" />
+        <result column="create_name" property="createName" />
+        <result column="create_by" property="createBy" />
+        <result column="create_time" property="createTime" />
+        <result column="update_name" property="updateName" />
+        <result column="update_by" property="updateBy" />
+        <result column="update_time" property="updateTime" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, gas_name, usage_amount, level, size, bottle_code, gas_composition, college_id, college_name, subject_id, subject_name, room_num, beacon_tag, operator_id, operator, phone, gas_pressure, start_time, end_time, usage_img, create_name, create_by, create_time, update_name, update_by, update_time, remark
+    </sql>
+
+</mapper>