feat(dms): 新增设备效率报表功能

- 新增设备效率报表实体类及数据库映射
- 实现设备效率报表的增删改查接口
- 提供设备效率报表的分页查询和导出功能
- 添加设备效率报表的前端控制器和业务逻辑
- 配置设备效率报表的MyBatis映射文件
- 完成设备效率报表的数据验证和转换逻辑
hwmom-htk
zangch@mesnac.com 4 months ago
parent 03bb2940fd
commit cb940a66c4

@ -0,0 +1,117 @@
package org.dromara.dms.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.dms.domain.vo.DmsReportDeviceEfficiencyVo;
import org.dromara.dms.domain.bo.DmsReportDeviceEfficiencyBo;
import org.dromara.dms.service.IDmsReportDeviceEfficiencyService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
*
* 访:/dms/dmsReportDeviceEfficiency
*
* @author zch
* @date 2025-10-09
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/dmsReportDeviceEfficiency")
public class DmsReportDeviceEfficiencyController extends BaseController {
private final IDmsReportDeviceEfficiencyService dmsReportDeviceEfficiencyService;
/**
*
*/
@SaCheckPermission("dms:dmsReportDeviceEfficiency:list")
@GetMapping("/list")
public TableDataInfo<DmsReportDeviceEfficiencyVo> list(DmsReportDeviceEfficiencyBo bo, PageQuery pageQuery) {
return dmsReportDeviceEfficiencyService.queryPageList(bo, pageQuery);
}
/**
*
*/
@SaCheckPermission("dms:dmsReportDeviceEfficiency:export")
@Log(title = "设备效率报", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(DmsReportDeviceEfficiencyBo bo, HttpServletResponse response) {
List<DmsReportDeviceEfficiencyVo> list = dmsReportDeviceEfficiencyService.queryList(bo);
ExcelUtil.exportExcel(list, "设备效率报", DmsReportDeviceEfficiencyVo.class, response);
}
/**
*
*
* @param reportId
*/
@SaCheckPermission("dms:dmsReportDeviceEfficiency:query")
@GetMapping("/{reportId}")
public R<DmsReportDeviceEfficiencyVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long reportId) {
return R.ok(dmsReportDeviceEfficiencyService.queryById(reportId));
}
/**
*
*/
@SaCheckPermission("dms:dmsReportDeviceEfficiency:add")
@Log(title = "设备效率报", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody DmsReportDeviceEfficiencyBo bo) {
return toAjax(dmsReportDeviceEfficiencyService.insertByBo(bo));
}
/**
*
*/
@SaCheckPermission("dms:dmsReportDeviceEfficiency:edit")
@Log(title = "设备效率报", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody DmsReportDeviceEfficiencyBo bo) {
return toAjax(dmsReportDeviceEfficiencyService.updateByBo(bo));
}
/**
*
*
* @param reportIds
*/
@SaCheckPermission("dms:dmsReportDeviceEfficiency:remove")
@Log(title = "设备效率报", businessType = BusinessType.DELETE)
@DeleteMapping("/{reportIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] reportIds) {
return toAjax(dmsReportDeviceEfficiencyService.deleteWithValidByIds(List.of(reportIds), true));
}
/**
*
*/
@GetMapping("/getDmsReportDeviceEfficiencyList")
public R<List<DmsReportDeviceEfficiencyVo>> getDmsReportDeviceEfficiencyList(DmsReportDeviceEfficiencyBo bo) {
List<DmsReportDeviceEfficiencyVo> list = dmsReportDeviceEfficiencyService.queryList(bo);
return R.ok(list);
}
}

@ -0,0 +1,141 @@
package org.dromara.dms.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial;
import java.util.Date;
/**
* dms_report_device_efficiency
*
* @author zch
* @date 2025-10-09
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dms_report_device_efficiency")
public class DmsReportDeviceEfficiency extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
private Long reportId;
/**
*
*/
private Date statDate;
/**
* IDprod_base_workshop_info.workshop_id
*/
private Long workshopId;
/**
* IDbase_class_team_info.class_team_id
*/
private Long classTeamId;
/**
* IDbase_shift_info.shift_id
*/
private Long shiftId;
/**
* IDprod_base_machine_info.machine_id
*/
private Long machineId;
/**
*
*/
private String workshopName;
/**
*
*/
private String classTeamName;
/**
*
*/
private String shiftName;
/**
*
*/
private String machineName;
/**
*
*/
private Long outputQty;
/**
* /
*/
private Long processStdMachineHours;
/**
*
*/
private Long debugHours;
/**
*
*/
private Long runHours;
/**
*
*/
private Long standbyHours;
/**
*
*/
private Long faultHours;
/**
*
*/
private Long shutdownHours;
/**
* = ×
*/
private Long outputMachineHours;
/**
* = + +
*/
private Long totalHours;
/**
* = ( + ) /
*/
private Long uptimeRate;
/**
* = / (++++)
*/
private Long overallEfficiency;
/**
* = /
*/
private Long runtimeEfficiency;
/**
*
*/
private String remark;
}

@ -0,0 +1,164 @@
package org.dromara.dms.domain.bo;
import org.dromara.dms.domain.DmsReportDeviceEfficiency;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* dms_report_device_efficiency
*
* @author zch
* @date 2025-10-09
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = DmsReportDeviceEfficiency.class, reverseConvertGenerate = false)
public class DmsReportDeviceEfficiencyBo extends BaseEntity {
/**
*
*/
@NotNull(message = "主键标识不能为空", groups = { AddGroup.class, EditGroup.class })
private Long reportId;
/**
*
*/
@NotNull(message = "统计日期不能为空", groups = { AddGroup.class, EditGroup.class })
private Date statDate;
/**
* IDprod_base_workshop_info.workshop_id
*/
@NotNull(message = "车间ID关联prod_base_workshop_info.workshop_id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long workshopId;
/**
* IDbase_class_team_info.class_team_id
*/
@NotNull(message = "班组ID关联base_class_team_info.class_team_id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long classTeamId;
/**
* IDbase_shift_info.shift_id
*/
@NotNull(message = "班次ID关联base_shift_info.shift_id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long shiftId;
/**
* IDprod_base_machine_info.machine_id
*/
@NotNull(message = "设备ID关联prod_base_machine_info.machine_id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long machineId;
/**
*
*/
@NotBlank(message = "车间名称(存储过程写入,查询免关联)不能为空", groups = { AddGroup.class, EditGroup.class })
private String workshopName;
/**
*
*/
@NotBlank(message = "班组名称(存储过程写入,查询免关联)不能为空", groups = { AddGroup.class, EditGroup.class })
private String classTeamName;
/**
*
*/
@NotBlank(message = "班次名称(存储过程写入,查询免关联)不能为空", groups = { AddGroup.class, EditGroup.class })
private String shiftName;
/**
*
*/
@NotBlank(message = "设备名称(存储过程写入,查询免关联)不能为空", groups = { AddGroup.class, EditGroup.class })
private String machineName;
/**
*
*/
@NotNull(message = "产量(件)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long outputQty;
/**
* /
*/
@NotNull(message = "工序标准机时(小时/件)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long processStdMachineHours;
/**
*
*/
@NotNull(message = "调试时间(小时)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long debugHours;
/**
*
*/
@NotNull(message = "运行时长(小时)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long runHours;
/**
*
*/
@NotNull(message = "待机时长(小时)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long standbyHours;
/**
*
*/
@NotNull(message = "故障时长(小时)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long faultHours;
/**
*
*/
@NotNull(message = "关机时长(小时)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long shutdownHours;
/**
* = ×
*/
@NotNull(message = "产出机时(小时)= 产量 × 工序标准机时不能为空", groups = { AddGroup.class, EditGroup.class })
private Long outputMachineHours;
/**
* = + +
*/
@NotNull(message = "合计时长(小时)= 运行时长 + 待机时长 + 故障时长不能为空", groups = { AddGroup.class, EditGroup.class })
private Long totalHours;
/**
* = ( + ) /
*/
@NotNull(message = "开机率 = (运行时长 + 调试时间) / 合计时长不能为空", groups = { AddGroup.class, EditGroup.class })
private Long uptimeRate;
/**
* = / (++++)
*/
@NotNull(message = "综合效率 = 产出机时 / (运行+待机+故障+关机+调试)不能为空", groups = { AddGroup.class, EditGroup.class })
private Long overallEfficiency;
/**
* = /
*/
@NotNull(message = "运行效率 = 产出机时 / 运行时长不能为空", groups = { AddGroup.class, EditGroup.class })
private Long runtimeEfficiency;
/**
*
*/
@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
private String remark;
}

@ -0,0 +1,185 @@
package org.dromara.dms.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.dms.domain.DmsReportDeviceEfficiency;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* dms_report_device_efficiency
*
* @author zch
* @date 2025-10-09
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = DmsReportDeviceEfficiency.class)
public class DmsReportDeviceEfficiencyVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "主键标识")
private Long reportId;
/**
*
*/
@ExcelProperty(value = "统计日期")
private Date statDate;
/**
* IDprod_base_workshop_info.workshop_id
*/
@ExcelProperty(value = "车间ID关联prod_base_workshop_info.workshop_id")
private Long workshopId;
/**
* IDbase_class_team_info.class_team_id
*/
@ExcelProperty(value = "班组ID关联base_class_team_info.class_team_id")
private Long classTeamId;
/**
* IDbase_shift_info.shift_id
*/
@ExcelProperty(value = "班次ID关联base_shift_info.shift_id")
private Long shiftId;
/**
* IDprod_base_machine_info.machine_id
*/
@ExcelProperty(value = "设备ID关联prod_base_machine_info.machine_id")
private Long machineId;
/**
*
*/
@ExcelProperty(value = "车间名称", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "存=储过程写入,查询免关联")
private String workshopName;
/**
*
*/
@ExcelProperty(value = "班组名称", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "存=储过程写入,查询免关联")
private String classTeamName;
/**
*
*/
@ExcelProperty(value = "班次名称", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "存=储过程写入,查询免关联")
private String shiftName;
/**
*
*/
@ExcelProperty(value = "设备名称", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "存=储过程写入,查询免关联")
private String machineName;
/**
*
*/
@ExcelProperty(value = "产量", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "件=")
private Long outputQty;
/**
* /
*/
@ExcelProperty(value = "工序标准机时", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "小=时/件")
private Long processStdMachineHours;
/**
*
*/
@ExcelProperty(value = "调试时间", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "小=时")
private Long debugHours;
/**
*
*/
@ExcelProperty(value = "运行时长", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "小=时")
private Long runHours;
/**
*
*/
@ExcelProperty(value = "待机时长", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "小=时")
private Long standbyHours;
/**
*
*/
@ExcelProperty(value = "故障时长", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "小=时")
private Long faultHours;
/**
*
*/
@ExcelProperty(value = "关机时长", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "小=时")
private Long shutdownHours;
/**
* = ×
*/
@ExcelProperty(value = "产出机时", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "小=时")
private Long outputMachineHours;
/**
* = + +
*/
@ExcelProperty(value = "合计时长", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "小=时")
private Long totalHours;
/**
* = ( + ) /
*/
@ExcelProperty(value = "开机率 = (运行时长 + 调试时间) / 合计时长")
private Long uptimeRate;
/**
* = / (++++)
*/
@ExcelProperty(value = "综合效率 = 产出机时 / (运行+待机+故障+关机+调试)")
private Long overallEfficiency;
/**
* = /
*/
@ExcelProperty(value = "运行效率 = 产出机时 / 运行时长")
private Long runtimeEfficiency;
/**
*
*/
@ExcelProperty(value = "备注")
private String remark;
}

@ -0,0 +1,15 @@
package org.dromara.dms.mapper;
import org.dromara.dms.domain.DmsReportDeviceEfficiency;
import org.dromara.dms.domain.vo.DmsReportDeviceEfficiencyVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* Mapper
*
* @author zch
* @date 2025-10-09
*/
public interface DmsReportDeviceEfficiencyMapper extends BaseMapperPlus<DmsReportDeviceEfficiency, DmsReportDeviceEfficiencyVo> {
}

@ -0,0 +1,69 @@
package org.dromara.dms.service;
import org.dromara.dms.domain.DmsReportDeviceEfficiency;
import org.dromara.dms.domain.vo.DmsReportDeviceEfficiencyVo;
import org.dromara.dms.domain.bo.DmsReportDeviceEfficiencyBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* Service
*
* @author zch
* @date 2025-10-09
*/
public interface IDmsReportDeviceEfficiencyService {
/**
*
*
* @param reportId
* @return
*/
DmsReportDeviceEfficiencyVo queryById(Long reportId);
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
TableDataInfo<DmsReportDeviceEfficiencyVo> queryPageList(DmsReportDeviceEfficiencyBo bo, PageQuery pageQuery);
/**
*
*
* @param bo
* @return
*/
List<DmsReportDeviceEfficiencyVo> queryList(DmsReportDeviceEfficiencyBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean insertByBo(DmsReportDeviceEfficiencyBo bo);
/**
*
*
* @param bo
* @return
*/
Boolean updateByBo(DmsReportDeviceEfficiencyBo bo);
/**
*
*
* @param ids
* @param isValid
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

@ -0,0 +1,153 @@
package org.dromara.dms.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.dms.domain.bo.DmsReportDeviceEfficiencyBo;
import org.dromara.dms.domain.vo.DmsReportDeviceEfficiencyVo;
import org.dromara.dms.domain.DmsReportDeviceEfficiency;
import org.dromara.dms.mapper.DmsReportDeviceEfficiencyMapper;
import org.dromara.dms.service.IDmsReportDeviceEfficiencyService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* Service
*
* @author zch
* @date 2025-10-09
*/
@RequiredArgsConstructor
@Service
public class DmsReportDeviceEfficiencyServiceImpl implements IDmsReportDeviceEfficiencyService {
private final DmsReportDeviceEfficiencyMapper baseMapper;
/**
*
*
* @param reportId
* @return
*/
@Override
public DmsReportDeviceEfficiencyVo queryById(Long reportId){
return baseMapper.selectVoById(reportId);
}
/**
*
*
* @param bo
* @param pageQuery
* @return
*/
@Override
public TableDataInfo<DmsReportDeviceEfficiencyVo> queryPageList(DmsReportDeviceEfficiencyBo bo, PageQuery pageQuery) {
MPJLambdaWrapper<DmsReportDeviceEfficiency> lqw = buildQueryWrapper(bo);
Page<DmsReportDeviceEfficiencyVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
*
*
* @param bo
* @return
*/
@Override
public List<DmsReportDeviceEfficiencyVo> queryList(DmsReportDeviceEfficiencyBo bo) {
MPJLambdaWrapper<DmsReportDeviceEfficiency> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private MPJLambdaWrapper<DmsReportDeviceEfficiency> buildQueryWrapper(DmsReportDeviceEfficiencyBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<DmsReportDeviceEfficiency> lqw = JoinWrappers.lambda(DmsReportDeviceEfficiency.class)
.selectAll(DmsReportDeviceEfficiency.class)
.eq(bo.getReportId() != null, DmsReportDeviceEfficiency::getReportId, bo.getReportId())
.eq(bo.getStatDate() != null, DmsReportDeviceEfficiency::getStatDate, bo.getStatDate())
.eq(bo.getWorkshopId() != null, DmsReportDeviceEfficiency::getWorkshopId, bo.getWorkshopId())
.eq(bo.getClassTeamId() != null, DmsReportDeviceEfficiency::getClassTeamId, bo.getClassTeamId())
.eq(bo.getShiftId() != null, DmsReportDeviceEfficiency::getShiftId, bo.getShiftId())
.eq(bo.getMachineId() != null, DmsReportDeviceEfficiency::getMachineId, bo.getMachineId())
.like(StringUtils.isNotBlank(bo.getWorkshopName()), DmsReportDeviceEfficiency::getWorkshopName, bo.getWorkshopName())
.like(StringUtils.isNotBlank(bo.getClassTeamName()), DmsReportDeviceEfficiency::getClassTeamName, bo.getClassTeamName())
.like(StringUtils.isNotBlank(bo.getShiftName()), DmsReportDeviceEfficiency::getShiftName, bo.getShiftName())
.like(StringUtils.isNotBlank(bo.getMachineName()), DmsReportDeviceEfficiency::getMachineName, bo.getMachineName())
.eq(bo.getOutputQty() != null, DmsReportDeviceEfficiency::getOutputQty, bo.getOutputQty())
.eq(bo.getProcessStdMachineHours() != null, DmsReportDeviceEfficiency::getProcessStdMachineHours, bo.getProcessStdMachineHours())
.eq(bo.getDebugHours() != null, DmsReportDeviceEfficiency::getDebugHours, bo.getDebugHours())
.eq(bo.getRunHours() != null, DmsReportDeviceEfficiency::getRunHours, bo.getRunHours())
.eq(bo.getStandbyHours() != null, DmsReportDeviceEfficiency::getStandbyHours, bo.getStandbyHours())
.eq(bo.getFaultHours() != null, DmsReportDeviceEfficiency::getFaultHours, bo.getFaultHours())
.eq(bo.getShutdownHours() != null, DmsReportDeviceEfficiency::getShutdownHours, bo.getShutdownHours())
.eq(bo.getOutputMachineHours() != null, DmsReportDeviceEfficiency::getOutputMachineHours, bo.getOutputMachineHours())
.eq(bo.getTotalHours() != null, DmsReportDeviceEfficiency::getTotalHours, bo.getTotalHours())
.eq(bo.getUptimeRate() != null, DmsReportDeviceEfficiency::getUptimeRate, bo.getUptimeRate())
.eq(bo.getOverallEfficiency() != null, DmsReportDeviceEfficiency::getOverallEfficiency, bo.getOverallEfficiency())
.eq(bo.getRuntimeEfficiency() != null, DmsReportDeviceEfficiency::getRuntimeEfficiency, bo.getRuntimeEfficiency())
.orderByDesc(DmsReportDeviceEfficiency::getCreateTime);
return lqw;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean insertByBo(DmsReportDeviceEfficiencyBo bo) {
DmsReportDeviceEfficiency add = MapstructUtils.convert(bo, DmsReportDeviceEfficiency.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setReportId(add.getReportId());
}
return flag;
}
/**
*
*
* @param bo
* @return
*/
@Override
public Boolean updateByBo(DmsReportDeviceEfficiencyBo bo) {
DmsReportDeviceEfficiency update = MapstructUtils.convert(bo, DmsReportDeviceEfficiency.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
*
*/
private void validEntityBeforeSave(DmsReportDeviceEfficiency entity){
//TODO 做一些数据校验,如唯一约束
}
/**
*
*
* @param ids
* @param isValid
* @return
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

@ -0,0 +1,7 @@
<?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="org.dromara.dms.mapper.DmsReportDeviceEfficiencyMapper">
</mapper>
Loading…
Cancel
Save