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;
|
|
/**
|
* <p>
|
* 监测和测量设备校准确认表 服务实现类
|
* </p>
|
*
|
* @author hh
|
* @since 2025-08-25 15:01:44
|
*/
|
@Service
|
public class CalibrationMonitoringEquipmentServiceImpl extends ServiceImpl<CalibrationMonitoringEquipmentMapper, CalibrationMonitoringEquipment> implements CalibrationMonitoringEquipmentService {
|
|
@Autowired
|
private CalibrationMonitoringEquipmentMapper calibrationMonitoringEquipmentMapper;
|
|
@Override
|
public CommonPage selectCalibrationMonitoringEquipmentList(CalibrationMonitoringEquipment calibrationMonitoringEquipment) {
|
PageUtils.startPage();
|
List<CalibrationMonitoringEquipment> 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<CalibrationMonitoringEquipment>().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<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 + "条设备校准数据");
|
}
|
|
}
|