“djh”
7 days ago b72bb7cba52850c078157ffd95a45edf41751110
multi-system/src/main/java/com/gkhy/exam/system/service/impl/CalibrationMonitoringEquipmentServiceImpl.java
@@ -1,10 +1,13 @@
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;
@@ -12,9 +15,11 @@
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;
/**
 * <p>
@@ -62,4 +67,77 @@
        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<CalibrationMonitoringEquipment> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(CalibrationMonitoringEquipment::getDelFlag, UserConstant.ENABLE)
                .eq(CalibrationMonitoringEquipment::getCompanyId, companyId);
        List<CalibrationMonitoringEquipment> sourceEquipments = calibrationMonitoringEquipmentMapper.selectList(queryWrapper);
        if (ObjectUtils.isEmpty(sourceEquipments)) {
            return CommonResult.failed("未找到源公司的设备校准数据");
        }
        List<CalibrationMonitoringEquipment> 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 + "条设备校准数据");
    }
}