package com.gkhy.exam.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.exam.common.api.CommonPage; import com.gkhy.exam.common.api.CommonResult; import com.gkhy.exam.common.constant.UserConstant; import com.gkhy.exam.common.exception.ApiException; import com.gkhy.exam.common.utils.PageUtils; import com.gkhy.exam.common.utils.SecurityUtils; import com.gkhy.exam.system.domain.CalibrationMonitoringEquipment; import com.gkhy.exam.system.mapper.CalibrationMonitoringEquipmentMapper; import com.gkhy.exam.system.service.CalibrationMonitoringEquipmentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.List; import java.util.stream.Collectors; /** *

* 监测和测量设备校准确认表 服务实现类 *

* * @author hh * @since 2025-08-25 15:01:44 */ @Service public class CalibrationMonitoringEquipmentServiceImpl extends ServiceImpl implements CalibrationMonitoringEquipmentService { @Autowired private CalibrationMonitoringEquipmentMapper calibrationMonitoringEquipmentMapper; @Override public CommonPage selectCalibrationMonitoringEquipmentList(CalibrationMonitoringEquipment calibrationMonitoringEquipment) { PageUtils.startPage(); List calibrationMonitoringEquipments = calibrationMonitoringEquipmentMapper.selectCalibrationMonitoringEquipmentList(calibrationMonitoringEquipment); return CommonPage.restPage(calibrationMonitoringEquipments); } @Override public CommonResult saveCalibrationMonitoringEquipment(CalibrationMonitoringEquipment calibrationMonitoringEquipment) { int i = 0; if (calibrationMonitoringEquipment.getId() == null){ calibrationMonitoringEquipment.setCreateBy(SecurityUtils.getUsername()); calibrationMonitoringEquipment.setCreateTime(LocalDateTime.now()); i = calibrationMonitoringEquipmentMapper.insert(calibrationMonitoringEquipment); }else { calibrationMonitoringEquipment.setUpdateTime(LocalDateTime.now()); calibrationMonitoringEquipment.setUpdateBy(SecurityUtils.getUsername()); i = calibrationMonitoringEquipmentMapper.updateById(calibrationMonitoringEquipment); } return i > 0 ? CommonResult.success() : CommonResult.failed(); } @Override public CommonResult deletedCalibrationMonitoringEquipment(Long id) { int i = calibrationMonitoringEquipmentMapper.update(new CalibrationMonitoringEquipment(), new LambdaUpdateWrapper().eq(CalibrationMonitoringEquipment::getId, id).set(CalibrationMonitoringEquipment::getDelFlag, UserConstant.DISENABLE) .set(CalibrationMonitoringEquipment::getUpdateTime, LocalDateTime.now()).set(CalibrationMonitoringEquipment::getUpdateBy, SecurityUtils.getUsername()) ); return CommonResult.success(); } @Override @Transactional(rollbackFor = Exception.class) public CommonResult copyCalibrationMonitoringEquipment(Integer companyId, String sourceYear, String targetYear) { if (ObjectUtils.isEmpty(companyId)) { return CommonResult.failed("公司ID不能为空"); } if (ObjectUtils.isEmpty(sourceYear) || ObjectUtils.isEmpty(targetYear)) { return CommonResult.failed("源年份和目标年份不能为空"); } if (sourceYear.equals(targetYear)) { return CommonResult.failed("源年份和目标年份不能相同"); } LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(CalibrationMonitoringEquipment::getDelFlag, UserConstant.ENABLE) .eq(CalibrationMonitoringEquipment::getCompanyId, companyId); List sourceEquipments = calibrationMonitoringEquipmentMapper.selectList(queryWrapper); if (ObjectUtils.isEmpty(sourceEquipments)) { return CommonResult.failed("未找到源公司的设备校准数据"); } List filteredEquipments = sourceEquipments.stream() .filter(equipment -> equipment.getCalibrationTime() != null && String.valueOf(equipment.getCalibrationTime().getYear()).equals(sourceYear)) .collect(Collectors.toList()); if (ObjectUtils.isEmpty(filteredEquipments)) { return CommonResult.failed("未找到" + sourceYear + "年的设备校准数据"); } int successCount = 0; for (CalibrationMonitoringEquipment sourceEquipment : filteredEquipments) { CalibrationMonitoringEquipment newEquipment = new CalibrationMonitoringEquipment(); newEquipment.setCompanyId(sourceEquipment.getCompanyId()); newEquipment.setDeviceName(sourceEquipment.getDeviceName()); newEquipment.setDeviceNumber(sourceEquipment.getDeviceNumber()); newEquipment.setCalibrationNumber(sourceEquipment.getCalibrationNumber()); LocalDateTime newCalibrationTime = sourceEquipment.getCalibrationTime() .withYear(Integer.parseInt(targetYear)); newEquipment.setCalibrationTime(newCalibrationTime); newEquipment.setCalibrationCompany(sourceEquipment.getCalibrationCompany()); newEquipment.setCalibrationResult(sourceEquipment.getCalibrationResult()); newEquipment.setConfirmUser(sourceEquipment.getConfirmUser()); newEquipment.setConfirmTime(sourceEquipment.getConfirmTime()); newEquipment.setExecutiveUser(sourceEquipment.getExecutiveUser()); newEquipment.setExecutiveTime(sourceEquipment.getExecutiveTime()); newEquipment.setDelFlag(UserConstant.ENABLE); newEquipment.setCreateBy(SecurityUtils.getUsername()); newEquipment.setCreateTime(LocalDateTime.now()); newEquipment.setVersion(0); int insertResult = calibrationMonitoringEquipmentMapper.insert(newEquipment); if (insertResult > 0) { successCount++; } } if (successCount == 0) { throw new ApiException("复制设备校准数据失败"); } return CommonResult.success("成功复制" + successCount + "条设备校准数据"); } }