/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.sxkj.fw.detection.service.impl; import org.sxkj.fw.detection.entity.FwDeviceConfigEntity; import org.sxkj.fw.detection.vo.FwDeviceConfigVO; import org.sxkj.fw.detection.excel.FwDeviceConfigExcel; import org.sxkj.fw.detection.mapper.FwDeviceConfigMapper; import org.sxkj.fw.detection.service.IFwDeviceConfigService; 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 org.springblade.core.tool.api.R; import java.util.List; /** * 设备配置表 服务实现类 * * @author lw * @since 2026-01-08 */ @Service public class FwDeviceConfigServiceImpl extends BaseServiceImpl implements IFwDeviceConfigService { @Override public IPage selectFwDeviceConfigPage(IPage page, FwDeviceConfigVO fwDeviceConfig) { return page.setRecords(baseMapper.selectFwDeviceConfigPage(page, fwDeviceConfig)); } @Override public FwDeviceConfigEntity selectLatestByDeviceId(Long deviceId) { return baseMapper.selectLatestByDeviceId(deviceId); } @Override public FwDeviceConfigEntity selectLatestVersionByDeviceId(Long deviceId) { return baseMapper.selectLatestVersionByDeviceId(deviceId); } @Override public Integer selectMaxConfigVersion(Long deviceId) { return baseMapper.selectMaxConfigVersion(deviceId); } @Override public int resetLatestByDeviceId(Long deviceId, Long excludeId) { return baseMapper.resetLatestByDeviceId(deviceId, excludeId); } @Override public R saveOrUpdateConfig(FwDeviceConfigEntity fwDeviceConfig) { if (fwDeviceConfig == null || fwDeviceConfig.getDeviceId() == null) { return R.fail("设备id不能为空"); } Long deviceId = fwDeviceConfig.getDeviceId(); FwDeviceConfigEntity existing = null; if (fwDeviceConfig.getId() != null) { existing = this.getById(fwDeviceConfig.getId()); if (existing == null) { return R.fail("数据不存在"); } } if (existing == null) { Integer maxVersion = this.selectMaxConfigVersion(deviceId); fwDeviceConfig.setConfigVersion(maxVersion == null ? 1 : maxVersion + 1); fwDeviceConfig.setIsLatest((byte) 1); this.resetLatestByDeviceId(deviceId, null); return R.status(this.save(fwDeviceConfig)); } if (fwDeviceConfig.getConfigVersion() == null) { fwDeviceConfig.setConfigVersion(existing.getConfigVersion()); } if (fwDeviceConfig.getIsLatest() == null) { fwDeviceConfig.setIsLatest(existing.getIsLatest()); } if (fwDeviceConfig.getIsLatest() != null && fwDeviceConfig.getIsLatest() == 1) { this.resetLatestByDeviceId(deviceId, fwDeviceConfig.getId()); } return R.status(this.updateById(fwDeviceConfig)); } @Override public List exportFwDeviceConfig(Wrapper queryWrapper) { List fwDeviceConfigList = baseMapper.exportFwDeviceConfig(queryWrapper); //fwDeviceConfigList.forEach(fwDeviceConfig -> { // fwDeviceConfig.setTypeName(DictCache.getValue(DictEnum.YES_NO, FwDeviceConfig.getType())); //}); return fwDeviceConfigList; } }