diff --git a/ant-design-vue-jeecg/src/views/productrecord/ProductRecordList.vue b/ant-design-vue-jeecg/src/views/productrecord/ProductRecordList.vue
new file mode 100644
index 00000000..45e10817
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/productrecord/ProductRecordList.vue
@@ -0,0 +1,231 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+ {{ toggleSearchStatus ? '收起' : '展开' }}
+
+
+
+
+
+
+
+
+
+
+
+
新增
+
导出
+
+ 导入
+
+
+
+
+
+ 删除
+
+ 批量操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 无图片
+
+
+
+ 无文件
+
+ 下载
+
+
+
+
+ 编辑
+
+
+
+ 更多
+
+
+ 详情
+
+
+ handleDelete(record.id)">
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/productrecord/modules/ProductRecordForm.vue b/ant-design-vue-jeecg/src/views/productrecord/modules/ProductRecordForm.vue
new file mode 100644
index 00000000..79bc5bc6
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/productrecord/modules/ProductRecordForm.vue
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/productrecord/modules/ProductRecordModal.vue b/ant-design-vue-jeecg/src/views/productrecord/modules/ProductRecordModal.vue
new file mode 100644
index 00000000..663407ac
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/productrecord/modules/ProductRecordModal.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/productrecord/modules/ProductRecordModal__Style#Drawer.vue b/ant-design-vue-jeecg/src/views/productrecord/modules/ProductRecordModal__Style#Drawer.vue
new file mode 100644
index 00000000..7c69abe1
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/productrecord/modules/ProductRecordModal__Style#Drawer.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/sensor/SensorList.vue b/ant-design-vue-jeecg/src/views/sensor/SensorList.vue
new file mode 100644
index 00000000..7b98abbe
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/sensor/SensorList.vue
@@ -0,0 +1,229 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查询
+ 重置
+
+ {{ toggleSearchStatus ? '收起' : '展开' }}
+
+
+
+
+
+
+
+
+
+
+
+
新增
+
导出
+
+ 导入
+
+
+
+
+
+ 删除
+
+ 批量操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 无图片
+
+
+
+ 无文件
+
+ 下载
+
+
+
+
+ 编辑
+
+
+
+ 更多
+
+
+ 详情
+
+
+ handleDelete(record.id)">
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/sensor/modules/SensorForm.vue b/ant-design-vue-jeecg/src/views/sensor/modules/SensorForm.vue
new file mode 100644
index 00000000..0b8a7f4f
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/sensor/modules/SensorForm.vue
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/sensor/modules/SensorModal.vue b/ant-design-vue-jeecg/src/views/sensor/modules/SensorModal.vue
new file mode 100644
index 00000000..259e4803
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/sensor/modules/SensorModal.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/sensor/modules/SensorModal__Style#Drawer.vue b/ant-design-vue-jeecg/src/views/sensor/modules/SensorModal__Style#Drawer.vue
new file mode 100644
index 00000000..eac086c3
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/sensor/modules/SensorModal__Style#Drawer.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/sensorrecord/SensorRecordList.vue b/ant-design-vue-jeecg/src/views/sensorrecord/SensorRecordList.vue
new file mode 100644
index 00000000..c11a8113
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/sensorrecord/SensorRecordList.vue
@@ -0,0 +1,202 @@
+
+
+
+
+
+
+
+
+
新增
+
导出
+
+ 导入
+
+
+
+
+
+ 删除
+
+ 批量操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 无图片
+
+
+
+ 无文件
+
+ 下载
+
+
+
+
+ 编辑
+
+
+
+ 更多
+
+
+ 详情
+
+
+ handleDelete(record.id)">
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/sensorrecord/modules/SensorRecordForm.vue b/ant-design-vue-jeecg/src/views/sensorrecord/modules/SensorRecordForm.vue
new file mode 100644
index 00000000..a68dd0a8
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/sensorrecord/modules/SensorRecordForm.vue
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/sensorrecord/modules/SensorRecordModal.vue b/ant-design-vue-jeecg/src/views/sensorrecord/modules/SensorRecordModal.vue
new file mode 100644
index 00000000..ae299951
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/sensorrecord/modules/SensorRecordModal.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ant-design-vue-jeecg/src/views/sensorrecord/modules/SensorRecordModal__Style#Drawer.vue b/ant-design-vue-jeecg/src/views/sensorrecord/modules/SensorRecordModal__Style#Drawer.vue
new file mode 100644
index 00000000..5c6b1dc1
--- /dev/null
+++ b/ant-design-vue-jeecg/src/views/sensorrecord/modules/SensorRecordModal__Style#Drawer.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/controller/ProductRecordController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/controller/ProductRecordController.java
new file mode 100644
index 00000000..7955ba66
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/controller/ProductRecordController.java
@@ -0,0 +1,172 @@
+package org.jeecg.modules.demo.productrecord.controller;
+
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.demo.productrecord.entity.ProductRecord;
+import org.jeecg.modules.demo.productrecord.service.IProductRecordService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: 生产记录表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-13
+ * @Version: V1.0
+ */
+@Api(tags="生产记录表")
+@RestController
+@RequestMapping("/productrecord/productRecord")
+@Slf4j
+public class ProductRecordController extends JeecgController {
+ @Autowired
+ private IProductRecordService productRecordService;
+
+ /**
+ * 分页列表查询
+ *
+ * @param productRecord
+ * @param pageNo
+ * @param pageSize
+ * @param req
+ * @return
+ */
+ @AutoLog(value = "生产记录表-分页列表查询")
+ @ApiOperation(value="生产记录表-分页列表查询", notes="生产记录表-分页列表查询")
+ @GetMapping(value = "/list")
+ public Result> queryPageList(ProductRecord productRecord,
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+ HttpServletRequest req) {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(productRecord, req.getParameterMap());
+ Page page = new Page(pageNo, pageSize);
+ IPage pageList = productRecordService.page(page, queryWrapper);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 添加
+ *
+ * @param productRecord
+ * @return
+ */
+ @AutoLog(value = "生产记录表-添加")
+ @ApiOperation(value="生产记录表-添加", notes="生产记录表-添加")
+ @PostMapping(value = "/add")
+ public Result> add(@RequestBody ProductRecord productRecord) {
+ productRecordService.save(productRecord);
+ return Result.OK("添加成功!");
+ }
+
+ /**
+ * 编辑
+ *
+ * @param productRecord
+ * @return
+ */
+ @AutoLog(value = "生产记录表-编辑")
+ @ApiOperation(value="生产记录表-编辑", notes="生产记录表-编辑")
+ @PutMapping(value = "/edit")
+ public Result> edit(@RequestBody ProductRecord productRecord) {
+ productRecordService.updateById(productRecord);
+ return Result.OK("编辑成功!");
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "生产记录表-通过id删除")
+ @ApiOperation(value="生产记录表-通过id删除", notes="生产记录表-通过id删除")
+ @DeleteMapping(value = "/delete")
+ public Result> delete(@RequestParam(name="id",required=true) String id) {
+ productRecordService.removeById(id);
+ return Result.OK("删除成功!");
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @AutoLog(value = "生产记录表-批量删除")
+ @ApiOperation(value="生产记录表-批量删除", notes="生产记录表-批量删除")
+ @DeleteMapping(value = "/deleteBatch")
+ public Result> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+ this.productRecordService.removeByIds(Arrays.asList(ids.split(",")));
+ return Result.OK("批量删除成功!");
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "生产记录表-通过id查询")
+ @ApiOperation(value="生产记录表-通过id查询", notes="生产记录表-通过id查询")
+ @GetMapping(value = "/queryById")
+ public Result> queryById(@RequestParam(name="id",required=true) String id) {
+ ProductRecord productRecord = productRecordService.getById(id);
+ if(productRecord==null) {
+ return Result.error("未找到对应数据");
+ }
+ return Result.OK(productRecord);
+ }
+
+ /**
+ * 导出excel
+ *
+ * @param request
+ * @param productRecord
+ */
+ @RequestMapping(value = "/exportXls")
+ public ModelAndView exportXls(HttpServletRequest request, ProductRecord productRecord) {
+ return super.exportXls(request, productRecord, ProductRecord.class, "生产记录表");
+ }
+
+ /**
+ * 通过excel导入数据
+ *
+ * @param request
+ * @param response
+ * @return
+ */
+ @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+ public Result> importExcel(HttpServletRequest request, HttpServletResponse response) {
+ return super.importExcel(request, response, ProductRecord.class);
+ }
+
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/entity/ProductRecord.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/entity/ProductRecord.java
new file mode 100644
index 00000000..19f34672
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/entity/ProductRecord.java
@@ -0,0 +1,97 @@
+package org.jeecg.modules.demo.productrecord.entity;
+
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 生产记录表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-13
+ * @Version: V1.0
+ */
+@Data
+@TableName("product_record")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="product_record对象", description="生产记录表")
+public class ProductRecord implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**主键*/
+ @TableId(type = IdType.ASSIGN_ID)
+ @ApiModelProperty(value = "主键")
+ private String id;
+ /**创建人*/
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+ /**创建日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "创建日期")
+ private Date createTime;
+ /**更新人*/
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+ /**更新日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "更新日期")
+ private Date updateTime;
+ /**所属部门*/
+ @ApiModelProperty(value = "所属部门")
+ private String sysOrgCode;
+ /**工位*/
+ @Excel(name = "工位", width = 15, dictTable = "station", dicText = "station_name", dicCode = "id")
+ @Dict(dictTable = "station", dicText = "station_name", dicCode = "id")
+ @ApiModelProperty(value = "工位")
+ private String stationId;
+ /**工位*/
+ @Excel(name = "工位", width = 15)
+ @ApiModelProperty(value = "工位")
+ private String stationName;
+ /**工单编号*/
+ @Excel(name = "工单编号", width = 15, dictTable = "findgdbh", dicText = "order_id,order_code", dicCode = "id,orders_num")
+ @Dict(dictTable = "findgdbh", dicText = "order_id,order_code", dicCode = "id,orders_num")
+ @ApiModelProperty(value = "工单编号")
+ private String orderCode;
+ /**工单编号*/
+ @Excel(name = "工单编号", width = 15)
+ @ApiModelProperty(value = "工单编号")
+ private String orderId;
+ /**生产开始时间*/
+ @Excel(name = "生产开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "生产开始时间")
+ private Date workTime;
+ /**生产结束时间*/
+ @Excel(name = "生产结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "生产结束时间")
+ private Date offTime;
+ /**时长*/
+ @Excel(name = "时长", width = 15)
+ @ApiModelProperty(value = "时长")
+ private String duration;
+ /**状态*/
+ @Excel(name = "状态", width = 15, dicCode = "cgqzt")
+ @Dict(dicCode = "cgqzt")
+ @ApiModelProperty(value = "状态")
+ private String status;
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/mapper/ProductRecordMapper.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/mapper/ProductRecordMapper.java
new file mode 100644
index 00000000..9b777959
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/mapper/ProductRecordMapper.java
@@ -0,0 +1,18 @@
+package org.jeecg.modules.demo.productrecord.mapper;
+
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.demo.productrecord.entity.ProductRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 生产记录表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-13
+ * @Version: V1.0
+ */
+public interface ProductRecordMapper extends BaseMapper {
+
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/mapper/xml/ProductRecordMapper.xml b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/mapper/xml/ProductRecordMapper.xml
new file mode 100644
index 00000000..3b8989b0
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/mapper/xml/ProductRecordMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/service/IProductRecordService.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/service/IProductRecordService.java
new file mode 100644
index 00000000..7ca12a86
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/service/IProductRecordService.java
@@ -0,0 +1,16 @@
+package org.jeecg.modules.demo.productrecord.service;
+
+
+
+import org.jeecg.modules.demo.productrecord.entity.ProductRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 生产记录表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-13
+ * @Version: V1.0
+ */
+public interface IProductRecordService extends IService {
+
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/service/impl/ProductRecordServiceImpl.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/service/impl/ProductRecordServiceImpl.java
new file mode 100644
index 00000000..efd5cce3
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/productrecord/service/impl/ProductRecordServiceImpl.java
@@ -0,0 +1,21 @@
+package org.jeecg.modules.demo.productrecord.service.impl;
+
+
+
+import org.jeecg.modules.demo.productrecord.entity.ProductRecord;
+import org.jeecg.modules.demo.productrecord.mapper.ProductRecordMapper;
+import org.jeecg.modules.demo.productrecord.service.IProductRecordService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 生产记录表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-13
+ * @Version: V1.0
+ */
+@Service
+public class ProductRecordServiceImpl extends ServiceImpl implements IProductRecordService {
+
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/controller/SensorController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/controller/SensorController.java
new file mode 100644
index 00000000..afed121b
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/controller/SensorController.java
@@ -0,0 +1,173 @@
+package org.jeecg.modules.demo.sensor.controller;
+
+
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.demo.sensor.entity.Sensor;
+import org.jeecg.modules.demo.sensor.service.ISensorService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: 传感器表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-10
+ * @Version: V1.0
+ */
+@Api(tags="传感器表")
+@RestController
+@RequestMapping("/sensor/sensor")
+@Slf4j
+public class SensorController extends JeecgController {
+ @Autowired
+ private ISensorService sensorService;
+
+ /**
+ * 分页列表查询
+ *
+ * @param sensor
+ * @param pageNo
+ * @param pageSize
+ * @param req
+ * @return
+ */
+ @AutoLog(value = "传感器表-分页列表查询")
+ @ApiOperation(value="传感器表-分页列表查询", notes="传感器表-分页列表查询")
+ @GetMapping(value = "/list")
+ public Result> queryPageList(Sensor sensor,
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+ HttpServletRequest req) {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sensor, req.getParameterMap());
+ Page page = new Page(pageNo, pageSize);
+ IPage pageList = sensorService.page(page, queryWrapper);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 添加
+ *
+ * @param sensor
+ * @return
+ */
+ @AutoLog(value = "传感器表-添加")
+ @ApiOperation(value="传感器表-添加", notes="传感器表-添加")
+ @PostMapping(value = "/add")
+ public Result> add(@RequestBody Sensor sensor) {
+ sensorService.save(sensor);
+ return Result.OK("添加成功!");
+ }
+
+ /**
+ * 编辑
+ *
+ * @param sensor
+ * @return
+ */
+ @AutoLog(value = "传感器表-编辑")
+ @ApiOperation(value="传感器表-编辑", notes="传感器表-编辑")
+ @PutMapping(value = "/edit")
+ public Result> edit(@RequestBody Sensor sensor) {
+ sensorService.updateById(sensor);
+ return Result.OK("编辑成功!");
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "传感器表-通过id删除")
+ @ApiOperation(value="传感器表-通过id删除", notes="传感器表-通过id删除")
+ @DeleteMapping(value = "/delete")
+ public Result> delete(@RequestParam(name="id",required=true) String id) {
+ sensorService.removeById(id);
+ return Result.OK("删除成功!");
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @AutoLog(value = "传感器表-批量删除")
+ @ApiOperation(value="传感器表-批量删除", notes="传感器表-批量删除")
+ @DeleteMapping(value = "/deleteBatch")
+ public Result> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+ this.sensorService.removeByIds(Arrays.asList(ids.split(",")));
+ return Result.OK("批量删除成功!");
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "传感器表-通过id查询")
+ @ApiOperation(value="传感器表-通过id查询", notes="传感器表-通过id查询")
+ @GetMapping(value = "/queryById")
+ public Result> queryById(@RequestParam(name="id",required=true) String id) {
+ Sensor sensor = sensorService.getById(id);
+ if(sensor==null) {
+ return Result.error("未找到对应数据");
+ }
+ return Result.OK(sensor);
+ }
+
+ /**
+ * 导出excel
+ *
+ * @param request
+ * @param sensor
+ */
+ @RequestMapping(value = "/exportXls")
+ public ModelAndView exportXls(HttpServletRequest request, Sensor sensor) {
+ return super.exportXls(request, sensor, Sensor.class, "传感器表");
+ }
+
+ /**
+ * 通过excel导入数据
+ *
+ * @param request
+ * @param response
+ * @return
+ */
+ @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+ public Result> importExcel(HttpServletRequest request, HttpServletResponse response) {
+ return super.importExcel(request, response, Sensor.class);
+ }
+
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/entity/Sensor.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/entity/Sensor.java
new file mode 100644
index 00000000..f82cb152
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/entity/Sensor.java
@@ -0,0 +1,85 @@
+package org.jeecg.modules.demo.sensor.entity;
+
+
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 传感器表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-10
+ * @Version: V1.0
+ */
+@Data
+@TableName("sensor")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="sensor对象", description="传感器表")
+public class Sensor implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**主键*/
+ @TableId(type = IdType.ASSIGN_ID)
+ @ApiModelProperty(value = "主键")
+ private String id;
+ /**创建人*/
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+ /**创建日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "创建日期")
+ private Date createTime;
+ /**更新人*/
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+ /**更新日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "更新日期")
+ private Date updateTime;
+ /**所属部门*/
+ @ApiModelProperty(value = "所属部门")
+ private String sysOrgCode;
+ /**传感器编号*/
+ @Excel(name = "传感器编号", width = 15)
+ @ApiModelProperty(value = "传感器编号")
+ private String sensorCode;
+ /**车间*/
+ @Excel(name = "车间", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
+ @Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
+ @ApiModelProperty(value = "车间")
+ private String workshopId;
+ /**网络地址*/
+ @Excel(name = "网络地址", width = 15)
+ @ApiModelProperty(value = "网络地址")
+ private String sensorIp;
+ /**工位*/
+ @Excel(name = "工位", width = 15)
+ @ApiModelProperty(value = "工位")
+ private String stationId;
+ /**工位*/
+ @Excel(name = "工位", width = 15)
+ @ApiModelProperty(value = "工位")
+ private String station;
+ /**进出标记*/
+ @Excel(name = "进出标记", width = 15, dicCode = "ioinset")
+ @Dict(dicCode = "ioinset")
+ @ApiModelProperty(value = "进出标记")
+ private String iiOsign;
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/mapper/SensorMapper.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/mapper/SensorMapper.java
new file mode 100644
index 00000000..77938fe0
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/mapper/SensorMapper.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.demo.sensor.mapper;
+
+
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.demo.sensor.entity.Sensor;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 传感器表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-10
+ * @Version: V1.0
+ */
+public interface SensorMapper extends BaseMapper {
+
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/mapper/xml/SensorMapper.xml b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/mapper/xml/SensorMapper.xml
new file mode 100644
index 00000000..cd97aece
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/mapper/xml/SensorMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/service/ISensorService.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/service/ISensorService.java
new file mode 100644
index 00000000..0852a58e
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/service/ISensorService.java
@@ -0,0 +1,15 @@
+package org.jeecg.modules.demo.sensor.service;
+
+
+import org.jeecg.modules.demo.sensor.entity.Sensor;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 传感器表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-10
+ * @Version: V1.0
+ */
+public interface ISensorService extends IService {
+
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/service/impl/SensorServiceImpl.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/service/impl/SensorServiceImpl.java
new file mode 100644
index 00000000..00bc5354
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensor/service/impl/SensorServiceImpl.java
@@ -0,0 +1,21 @@
+package org.jeecg.modules.demo.sensor.service.impl;
+
+
+
+import org.jeecg.modules.demo.sensor.entity.Sensor;
+import org.jeecg.modules.demo.sensor.mapper.SensorMapper;
+import org.jeecg.modules.demo.sensor.service.ISensorService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 传感器表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-10
+ * @Version: V1.0
+ */
+@Service
+public class SensorServiceImpl extends ServiceImpl implements ISensorService {
+
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/controller/SensorRecordController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/controller/SensorRecordController.java
new file mode 100644
index 00000000..807404de
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/controller/SensorRecordController.java
@@ -0,0 +1,172 @@
+package org.jeecg.modules.demo.sensorrecord.controller;
+
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.demo.sensorrecord.entity.SensorRecord;
+import org.jeecg.modules.demo.sensorrecord.service.ISensorRecordService;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
+
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.def.NormalExcelConstants;
+import org.jeecgframework.poi.excel.entity.ExportParams;
+import org.jeecgframework.poi.excel.entity.ImportParams;
+import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+import org.springframework.web.servlet.ModelAndView;
+import com.alibaba.fastjson.JSON;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.aspect.annotation.AutoLog;
+
+ /**
+ * @Description: 传感记录表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-10
+ * @Version: V1.0
+ */
+@Api(tags="传感记录表")
+@RestController
+@RequestMapping("/sensorrecord/sensorRecord")
+@Slf4j
+public class SensorRecordController extends JeecgController {
+ @Autowired
+ private ISensorRecordService sensorRecordService;
+
+ /**
+ * 分页列表查询
+ *
+ * @param sensorRecord
+ * @param pageNo
+ * @param pageSize
+ * @param req
+ * @return
+ */
+ @AutoLog(value = "传感记录表-分页列表查询")
+ @ApiOperation(value="传感记录表-分页列表查询", notes="传感记录表-分页列表查询")
+ @GetMapping(value = "/list")
+ public Result> queryPageList(SensorRecord sensorRecord,
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+ HttpServletRequest req) {
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(sensorRecord, req.getParameterMap());
+ Page page = new Page(pageNo, pageSize);
+ IPage pageList = sensorRecordService.page(page, queryWrapper);
+ return Result.OK(pageList);
+ }
+
+ /**
+ * 添加
+ *
+ * @param sensorRecord
+ * @return
+ */
+ @AutoLog(value = "传感记录表-添加")
+ @ApiOperation(value="传感记录表-添加", notes="传感记录表-添加")
+ @PostMapping(value = "/add")
+ public Result> add(@RequestBody SensorRecord sensorRecord) {
+ sensorRecordService.save(sensorRecord);
+ return Result.OK("添加成功!");
+ }
+
+ /**
+ * 编辑
+ *
+ * @param sensorRecord
+ * @return
+ */
+ @AutoLog(value = "传感记录表-编辑")
+ @ApiOperation(value="传感记录表-编辑", notes="传感记录表-编辑")
+ @PutMapping(value = "/edit")
+ public Result> edit(@RequestBody SensorRecord sensorRecord) {
+ sensorRecordService.updateById(sensorRecord);
+ return Result.OK("编辑成功!");
+ }
+
+ /**
+ * 通过id删除
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "传感记录表-通过id删除")
+ @ApiOperation(value="传感记录表-通过id删除", notes="传感记录表-通过id删除")
+ @DeleteMapping(value = "/delete")
+ public Result> delete(@RequestParam(name="id",required=true) String id) {
+ sensorRecordService.removeById(id);
+ return Result.OK("删除成功!");
+ }
+
+ /**
+ * 批量删除
+ *
+ * @param ids
+ * @return
+ */
+ @AutoLog(value = "传感记录表-批量删除")
+ @ApiOperation(value="传感记录表-批量删除", notes="传感记录表-批量删除")
+ @DeleteMapping(value = "/deleteBatch")
+ public Result> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
+ this.sensorRecordService.removeByIds(Arrays.asList(ids.split(",")));
+ return Result.OK("批量删除成功!");
+ }
+
+ /**
+ * 通过id查询
+ *
+ * @param id
+ * @return
+ */
+ @AutoLog(value = "传感记录表-通过id查询")
+ @ApiOperation(value="传感记录表-通过id查询", notes="传感记录表-通过id查询")
+ @GetMapping(value = "/queryById")
+ public Result> queryById(@RequestParam(name="id",required=true) String id) {
+ SensorRecord sensorRecord = sensorRecordService.getById(id);
+ if(sensorRecord==null) {
+ return Result.error("未找到对应数据");
+ }
+ return Result.OK(sensorRecord);
+ }
+
+ /**
+ * 导出excel
+ *
+ * @param request
+ * @param sensorRecord
+ */
+ @RequestMapping(value = "/exportXls")
+ public ModelAndView exportXls(HttpServletRequest request, SensorRecord sensorRecord) {
+ return super.exportXls(request, sensorRecord, SensorRecord.class, "传感记录表");
+ }
+
+ /**
+ * 通过excel导入数据
+ *
+ * @param request
+ * @param response
+ * @return
+ */
+ @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
+ public Result> importExcel(HttpServletRequest request, HttpServletResponse response) {
+ return super.importExcel(request, response, SensorRecord.class);
+ }
+
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/entity/SensorRecord.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/entity/SensorRecord.java
new file mode 100644
index 00000000..fd55a705
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/entity/SensorRecord.java
@@ -0,0 +1,88 @@
+package org.jeecg.modules.demo.sensorrecord.entity;
+
+
+
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.jeecg.common.aspect.annotation.Dict;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * @Description: 传感记录表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-10
+ * @Version: V1.0
+ */
+@Data
+@TableName("sensor_record")
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="sensor_record对象", description="传感记录表")
+public class SensorRecord implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**主键*/
+ @TableId(type = IdType.ASSIGN_ID)
+ @ApiModelProperty(value = "主键")
+ private String id;
+ /**创建人*/
+ @ApiModelProperty(value = "创建人")
+ private String createBy;
+ /**创建日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "创建日期")
+ private Date createTime;
+ /**更新人*/
+ @ApiModelProperty(value = "更新人")
+ private String updateBy;
+ /**更新日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "更新日期")
+ private Date updateTime;
+ /**所属部门*/
+ @ApiModelProperty(value = "所属部门")
+ private String sysOrgCode;
+ /**传感器编号*/
+ @Excel(name = "传感器编号", width = 15, dictTable = "sensor", dicText = "sensor_code", dicCode = "id")
+ @Dict(dictTable = "sensor", dicText = "sensor_code", dicCode = "id")
+ @ApiModelProperty(value = "传感器编号")
+ private String sensorCode;
+ /**网络地址*/
+ @Excel(name = "网络地址", width = 15)
+ @ApiModelProperty(value = "网络地址")
+ private String sensorIp;
+ /**工位*/
+ @Excel(name = "工位", width = 15, dictTable = "station", dicText = "station_name", dicCode = "id")
+ @Dict(dictTable = "station", dicText = "station_name", dicCode = "id")
+ @ApiModelProperty(value = "工位")
+ private String stationId;
+ /**进出标记*/
+ @Excel(name = "进出标记", width = 15, dicCode = "ioinset")
+ @Dict(dicCode = "ioinset")
+ @ApiModelProperty(value = "进出标记")
+ private String iiOsign;
+ /**产品标识*/
+ @Excel(name = "产品标识", width = 15)
+ @ApiModelProperty(value = "产品标识")
+ private String productIdenti;
+ /**触发时间*/
+ @Excel(name = "触发时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "触发时间")
+ private Date triggerTime;
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/mapper/SensorRecordMapper.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/mapper/SensorRecordMapper.java
new file mode 100644
index 00000000..c15a7597
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/mapper/SensorRecordMapper.java
@@ -0,0 +1,19 @@
+package org.jeecg.modules.demo.sensorrecord.mapper;
+
+
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.jeecg.modules.demo.sensorrecord.entity.SensorRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Description: 传感记录表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-10
+ * @Version: V1.0
+ */
+public interface SensorRecordMapper extends BaseMapper {
+
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/mapper/xml/SensorRecordMapper.xml b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/mapper/xml/SensorRecordMapper.xml
new file mode 100644
index 00000000..ceb1e5f6
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/mapper/xml/SensorRecordMapper.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/service/ISensorRecordService.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/service/ISensorRecordService.java
new file mode 100644
index 00000000..3ae09dc0
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/service/ISensorRecordService.java
@@ -0,0 +1,16 @@
+package org.jeecg.modules.demo.sensorrecord.service;
+
+
+
+import org.jeecg.modules.demo.sensorrecord.entity.SensorRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * @Description: 传感记录表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-10
+ * @Version: V1.0
+ */
+public interface ISensorRecordService extends IService {
+
+}
diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/service/impl/SensorRecordServiceImpl.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/service/impl/SensorRecordServiceImpl.java
new file mode 100644
index 00000000..42b6385e
--- /dev/null
+++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/sensorrecord/service/impl/SensorRecordServiceImpl.java
@@ -0,0 +1,20 @@
+package org.jeecg.modules.demo.sensorrecord.service.impl;
+
+
+import org.jeecg.modules.demo.sensorrecord.entity.SensorRecord;
+import org.jeecg.modules.demo.sensorrecord.mapper.SensorRecordMapper;
+import org.jeecg.modules.demo.sensorrecord.service.ISensorRecordService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+
+/**
+ * @Description: 传感记录表
+ * @Author: jeecg-boot
+ * @Date: 2023-02-10
+ * @Version: V1.0
+ */
+@Service
+public class SensorRecordServiceImpl extends ServiceImpl implements ISensorRecordService {
+
+}