From 4cb88e72e9b3e82a22128378e48a790f17c41877 Mon Sep 17 00:00:00 2001 From: qinyulong Date: Wed, 7 Jan 2026 10:19:11 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E4=BB=AA=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E4=BB=A3=E7=A0=81=E9=80=86=E5=90=91=E7=94=9F?= =?UTF-8?q?=E6=88=90+=E8=AE=B0=E5=BD=95=E4=BB=AA=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E6=9B=B2=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/pojo/entity/RecorderEntity.java | 46 ++++++ .../desk/device/pojo/excel/RecorderExcel.java | 52 +++++++ .../device/pojo/request/RecorderQuery.java | 36 +++++ .../desk/device/pojo/vo/LoadRecorderVO.java | 27 ++++ .../desk/device/pojo/vo/RecorderVO.java | 21 +++ .../device/controller/RecorderController.java | 140 ++++++++++++++++++ .../desk/device/mapper/RecorderMapper.java | 39 +++++ .../desk/device/mapper/RecorderMapper.xml | 34 +++++ .../desk/device/service/IRecorderService.java | 46 ++++++ .../service/impl/RecorderServiceImpl.java | 140 ++++++++++++++++++ .../desk/device/wrapper/RecorderWrapper.java | 35 +++++ 11 files changed, 616 insertions(+) create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/RecorderEntity.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/excel/RecorderExcel.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/request/RecorderQuery.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/LoadRecorderVO.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/RecorderVO.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/RecorderController.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/RecorderMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/RecorderMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IRecorderService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/RecorderServiceImpl.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/device/wrapper/RecorderWrapper.java diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/RecorderEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/RecorderEntity.java new file mode 100644 index 00000000..960aa966 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/RecorderEntity.java @@ -0,0 +1,46 @@ +package org.springblade.desk.device.pojo.entity; + +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.math.BigDecimal; +import java.util.Date; + +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; + +/** + * 记录仪记录 实体类 + * + * @author qyl + * @since 2026-01-06 + */ +@Data +@TableName("MES_RECORDER") +@Schema(description = "Recorder对象") +@EqualsAndHashCode(callSuper = true) +public class RecorderEntity extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 记录仪 + */ + @Schema(description = "记录仪") + private BigDecimal recorder; + /** + * 记录时间 + */ + @Schema(description = "记录时间") + private Date recordDate; + /** + * 数据信息 + */ + @Schema(description = "数据信息") + private String memo; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/excel/RecorderExcel.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/excel/RecorderExcel.java new file mode 100644 index 00000000..09e13706 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/excel/RecorderExcel.java @@ -0,0 +1,52 @@ +package org.springblade.desk.device.pojo.excel; + + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; + +import java.io.Serializable; +import java.io.Serial; + + +/** + * 记录仪记录 Excel实体类 + * + * @author qyl + * @since 2026-01-06 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class RecorderExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 记录仪 + */ + @ColumnWidth(20) + @ExcelProperty("记录仪") + private BigDecimal recorder; + /** + * 记录时间 + */ + @ColumnWidth(20) + @ExcelProperty("记录时间") + private Date recordDate; + /** + * 数据信息 + */ + @ColumnWidth(20) + @ExcelProperty("数据信息") + private String memo; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/request/RecorderQuery.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/request/RecorderQuery.java new file mode 100644 index 00000000..cbce9ab1 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/request/RecorderQuery.java @@ -0,0 +1,36 @@ +package org.springblade.desk.device.pojo.request; + +import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.Date; + +/** + * 记录仪历史曲线 - 请求参数 + * + * @author qyl + */ +@Data +public class RecorderQuery { + /** + * 设备编码 + */ + @NotBlank(message = "设备编码不能为空") + private String code; + + /** + * 开始日期 + */ + @NotNull(message = "开始日期不能为空") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date startDate; + + /** + * 结束日期 + */ + @NotNull(message = "结束日期不能为空") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date endDate; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/LoadRecorderVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/LoadRecorderVO.java new file mode 100644 index 00000000..6b5f6a87 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/LoadRecorderVO.java @@ -0,0 +1,27 @@ +package org.springblade.desk.device.pojo.vo; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.desk.device.pojo.entity.RecorderEntity; + +import java.io.Serial; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 记录仪记录曲线 视图实体类 + * + * @author qyl + * @since 2026-01-06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class LoadRecorderVO extends RecorderEntity { + //X轴间隔 + private int x = 0; + //X轴数据 + private List xData = new ArrayList<>(); + //Y轴 + private List> yArray = new ArrayList<>(); +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/RecorderVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/RecorderVO.java new file mode 100644 index 00000000..100d730a --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/vo/RecorderVO.java @@ -0,0 +1,21 @@ +package org.springblade.desk.device.pojo.vo; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.desk.device.pojo.entity.RecorderEntity; + +import java.io.Serial; + +/** + * 记录仪记录 视图实体类 + * + * @author qyl + * @since 2026-01-06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class RecorderVO extends RecorderEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/RecorderController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/RecorderController.java new file mode 100644 index 00000000..60e12f21 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/controller/RecorderController.java @@ -0,0 +1,140 @@ +package org.springblade.desk.device.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.IsAdmin; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.desk.device.pojo.excel.RecorderExcel; +import org.springblade.desk.device.pojo.request.RecorderQuery; +import org.springblade.desk.device.pojo.vo.LoadRecorderVO; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.desk.device.pojo.entity.RecorderEntity; +import org.springblade.desk.device.pojo.vo.RecorderVO; +import org.springblade.desk.device.wrapper.RecorderWrapper; +import org.springblade.desk.device.service.IRecorderService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; + +import java.util.Map; +import java.util.List; + +import jakarta.servlet.http.HttpServletResponse; + +/** + * 记录仪记录 控制器 + * + * @author qyl + * @since 2026-01-06 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/recorder") +@Tag(name = "记录仪记录", description = "记录仪记录接口") +public class RecorderController extends BladeController { + + private final IRecorderService recorderService; + + /** + * 记录仪记录 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入recorder") + public R detail(RecorderEntity recorder) { + RecorderEntity detail = recorderService.getOne(Condition.getQueryWrapper(recorder)); + return R.data(RecorderWrapper.build().entityVO(detail)); + } + + /** + * 记录仪记录 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入recorder") + public R> page(RecorderVO recorder, Query query) { + IPage pages = recorderService.selectRecorderPage(Condition.getPage(query), recorder); + return R.data(pages); + } + + /** + * 记录仪记录 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入recorder") + public R save(@Valid @RequestBody RecorderEntity recorder) { + return R.status(recorderService.save(recorder)); + } + + /** + * 记录仪记录 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入recorder") + public R update(@Valid @RequestBody RecorderEntity recorder) { + return R.status(recorderService.updateById(recorder)); + } + + /** + * 记录仪记录 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入recorder") + public R submit(@Valid @RequestBody RecorderEntity recorder) { + return R.status(recorderService.saveOrUpdate(recorder)); + } + + /** + * 记录仪记录 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(recorderService.deleteLogic(Func.toLongList(ids))); + } + + /** + * 加载曲线图数据 + */ + @PostMapping("/loadCalRecorder") + @ApiOperationSupport(order = 8) + @Operation(summary = "记录仪历史曲线", description = "") + public R loadCalRecorder(@Valid @RequestBody RecorderQuery recorderQuery) { + return R.data(recorderService.loadCalRecorder(recorderQuery)); + } + + + /** + * 导出数据 + */ + @IsAdmin + @GetMapping("/export-recorder") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入recorder") + public void exportRecorder(@Parameter(hidden = true) @RequestParam Map recorder, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(recorder, RecorderEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(Recorder::getTenantId, bladeUser.getTenantId()); + //} + //queryWrapper.lambda().eq(RecorderEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = recorderService.exportRecorder(queryWrapper); + ExcelUtil.export(response, "记录仪记录数据" + DateUtil.time(), "记录仪记录数据表", list, RecorderExcel.class); + } + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/RecorderMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/RecorderMapper.java new file mode 100644 index 00000000..8c781be2 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/RecorderMapper.java @@ -0,0 +1,39 @@ +package org.springblade.desk.device.mapper; + +import org.springblade.desk.device.pojo.entity.RecorderEntity; +import org.springblade.desk.device.pojo.excel.RecorderExcel; +import org.springblade.desk.device.pojo.vo.RecorderVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 记录仪记录 Mapper 接口 + * + * @author qyl + * @since 2026-01-06 + */ +public interface RecorderMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page 分页参数 + * @param recorder 查询参数 + * @return List + */ + List selectRecorderPage(IPage page, RecorderVO recorder); + + + /** + * 获取导出数据 + * + * @param queryWrapper 查询条件 + * @return List + */ + List exportRecorder(@Param("ew") Wrapper queryWrapper); + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/RecorderMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/RecorderMapper.xml new file mode 100644 index 00000000..60131592 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/RecorderMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IRecorderService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IRecorderService.java new file mode 100644 index 00000000..e24a80b3 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IRecorderService.java @@ -0,0 +1,46 @@ +package org.springblade.desk.device.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.desk.device.pojo.entity.RecorderEntity; +import org.springblade.desk.device.pojo.excel.RecorderExcel; +import org.springblade.desk.device.pojo.request.RecorderQuery; +import org.springblade.desk.device.pojo.vo.LoadRecorderVO; +import org.springblade.desk.device.pojo.vo.RecorderVO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; + +import java.util.List; + +/** + * 记录仪记录 服务类 + * + * @author qyl + * @since 2026-01-06 + */ +public interface IRecorderService extends BaseService { + /** + * 自定义分页 + * + * @param page 分页参数 + * @param recorder 查询参数 + * @return IPage + */ + IPage selectRecorderPage(IPage page, RecorderVO recorder); + + + /** + * 导出数据 + * + * @param queryWrapper 查询条件 + * @return List + */ + List exportRecorder(Wrapper queryWrapper); + + /** + * 记录仪历史曲线 + * + * @param recorderQuery + * @return + */ + LoadRecorderVO loadCalRecorder(RecorderQuery recorderQuery); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/RecorderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/RecorderServiceImpl.java new file mode 100644 index 00000000..05dd26df --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/RecorderServiceImpl.java @@ -0,0 +1,140 @@ +package org.springblade.desk.device.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springblade.desk.device.pojo.entity.RecorderCompareEntity; +import org.springblade.desk.device.pojo.entity.RecorderEntity; +import org.springblade.desk.device.pojo.excel.RecorderExcel; +import org.springblade.desk.device.pojo.request.RecorderCompareSave; +import org.springblade.desk.device.pojo.request.RecorderQuery; +import org.springblade.desk.device.pojo.vo.LoadRecorderVO; +import org.springblade.desk.device.pojo.vo.RecorderVO; +import org.springblade.desk.device.mapper.RecorderMapper; +import org.springblade.desk.device.service.IRecorderCompareService; +import org.springblade.desk.device.service.IRecorderService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 记录仪记录 服务实现类 + * + * @author qyl + * @since 2026-01-06 + */ +@Service +public class RecorderServiceImpl extends BaseServiceImpl implements IRecorderService { + + @Autowired + private IRecorderCompareService iRecorderCompareService; + + @Override + public IPage selectRecorderPage(IPage page, RecorderVO recorder) { + return page.setRecords(baseMapper.selectRecorderPage(page, recorder)); + } + + + @Override + public List exportRecorder(Wrapper queryWrapper) { + List recorderList = baseMapper.exportRecorder(queryWrapper); + //recorderList.forEach(recorder -> { + // recorder.setTypeName(DictCache.getValue(DictEnum.YES_NO, Recorder.getType())); + //}); + return recorderList; + } + + @Override + public LoadRecorderVO loadCalRecorder(RecorderQuery recorderQuery) { + LoadRecorderVO loadRecorderVO = new LoadRecorderVO(); + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.like(Objects.nonNull(recorderQuery.getCode()), RecorderCompareEntity::getCode, recorderQuery.getCode()); + List recorderCompareEntities = iRecorderCompareService.list(wrapper); + if (recorderCompareEntities == null || recorderCompareEntities.size() < 1) { + return loadRecorderVO; + } + Map compreLst = recorderCompareEntities.stream() + .collect(Collectors.toMap( + RecorderCompareEntity::getName, // 键的映射函数 + var -> var, // 值的映射函数 + (existing, replacement) -> existing // 键冲突时的处理策略 + )); + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery() + .eq(RecorderEntity::getRecorder, recorderQuery.getCode()) // 精确匹配code + .ge(RecorderEntity::getRecordDate, recorderQuery.getStartDate()) // 大于等于开始日期 + .le(RecorderEntity::getRecordDate, recorderQuery.getEndDate()); // 小于等于结束日期 + List recorderEntities = baseMapper.selectList(queryWrapper); + + // 组装chart数据 + if (recorderEntities != null && recorderEntities.size() > 0) { + + //X轴间隔 + int x = 0; + //X轴数据 + List xData = new ArrayList<>(); + + Map> yMap = new HashMap<>(); + List ydataLst = null; + JSONObject jsonObject = null; + for (RecorderEntity recorderEntity : recorderEntities) { + + jsonObject = JSONObject.parseObject(recorderEntity.getMemo(), JSONObject.class); + + if (jsonObject == null) continue; + xData.add(recorderEntity.getRecordDate().toString()); + + for (Map.Entry var : compreLst.entrySet()) { + Double d = 0d; + if (StringUtils.isBlank(var.getKey())) continue; + String objData = jsonObject.getString(var.getKey()); + if (StringUtils.isNotBlank(objData)) { + d = Double.parseDouble(objData + ""); + } + + if (yMap.containsKey(var.getKey())) { + ydataLst = yMap.get(var.getKey()); + + } else { + ydataLst = new ArrayList<>(); + yMap.put(var.getKey(), ydataLst); + } + ydataLst.add(d); + } + } + + //Y轴数据 + //Y轴显示名称 + //Y轴比例尺 + + List> yArray = new ArrayList<>(); + for (Map.Entry> var : yMap.entrySet()) { + RecorderCompareEntity compare = compreLst.get(var.getKey()); + + JSONObject yObj = new JSONObject(); + if (compare.getShowName() == null || compare.getName() == "") { + yObj.put("showName", compare.getName()); + } else + yObj.put("showName", compare.getShowName()); + yObj.put("crcY", compare.getCrcY()); + yObj.put("yData", var.getValue()); + + if (compare.getCrcX() != null && compare.getCrcX() > x) + x = compare.getCrcX(); + yArray.add(yObj); + } + loadRecorderVO.setX(x); + loadRecorderVO.setXData(xData); + loadRecorderVO.setYArray(yArray); + return loadRecorderVO; + } + return loadRecorderVO; + } + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/device/wrapper/RecorderWrapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/wrapper/RecorderWrapper.java new file mode 100644 index 00000000..761a7275 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/device/wrapper/RecorderWrapper.java @@ -0,0 +1,35 @@ +package org.springblade.desk.device.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.desk.device.pojo.entity.RecorderEntity; +import org.springblade.desk.device.pojo.vo.RecorderVO; + +import java.util.Objects; + +/** + * 记录仪记录 包装类,返回视图层所需的字段 + * + * @author qyl + * @since 2026-01-06 + */ +public class RecorderWrapper extends BaseEntityWrapper { + + public static RecorderWrapper build() { + return new RecorderWrapper(); + } + + @Override + public RecorderVO entityVO(RecorderEntity recorder) { + RecorderVO recorderVO = Objects.requireNonNull(BeanUtil.copyProperties(recorder, RecorderVO.class)); + + //User createUser = UserCache.getUser(recorder.getCreateUser()); + //User updateUser = UserCache.getUser(recorder.getUpdateUser()); + //recorderVO.setCreateUserName(createUser.getName()); + //recorderVO.setUpdateUserName(updateUser.getName()); + + return recorderVO; + } + + +}