package com.ruoyi.device.service.impl; 
 | 
  
 | 
import com.baomidou.mybatisplus.core.metadata.IPage; 
 | 
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
 | 
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 
 | 
import com.ruoyi.common.utils.SecurityUtils; 
 | 
import com.ruoyi.device.dto.DeviceDefectRecordDto; 
 | 
import com.ruoyi.device.mapper.DeviceDefectRecordMapper; 
 | 
import com.ruoyi.device.mapper.DeviceRepairMapper; 
 | 
import com.ruoyi.device.pojo.DeviceDefectRecord; 
 | 
import com.ruoyi.device.pojo.DeviceRepair; 
 | 
import com.ruoyi.device.service.DeviceDefectRecordService; 
 | 
import com.ruoyi.device.service.IDeviceRepairService; 
 | 
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.Date; 
 | 
  
 | 
@Service 
 | 
@Transactional(rollbackFor = Exception.class) 
 | 
public class DeviceDefectRecordServiceImpl extends ServiceImpl<DeviceDefectRecordMapper, DeviceDefectRecord> implements DeviceDefectRecordService { 
 | 
    @Autowired 
 | 
    private DeviceDefectRecordMapper deviceDefectRecordMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private DeviceRepairMapper deviceRepairMapper; 
 | 
  
 | 
    @Override 
 | 
    public IPage<DeviceDefectRecordDto> listPage(Page page, DeviceDefectRecordDto deviceDefectRecordDto) { 
 | 
        return deviceDefectRecordMapper.listPage(page, deviceDefectRecordDto); 
 | 
    } 
 | 
    @Override 
 | 
    public boolean add(DeviceDefectRecord deviceDefectRecord) { 
 | 
        String status = deviceDefectRecord.getStatus(); 
 | 
        if (status.equals("严重缺陷")) { 
 | 
            DeviceRepair deviceRepair = new DeviceRepair(); 
 | 
            deviceRepair.setDeviceLedgerId(deviceDefectRecord.getDeviceLedgerId()); 
 | 
            deviceRepair.setRemark(deviceDefectRecord.getDefectDescription()); 
 | 
            //获取当前登录用户 
 | 
            deviceRepair.setRepairName(SecurityUtils.getUsername()); 
 | 
            deviceRepair.setRepairTime(new Date()); 
 | 
            deviceRepairMapper.insert(deviceRepair); 
 | 
            return deviceDefectRecordMapper.insert(deviceDefectRecord) > 0; 
 | 
        } else if (status.equals("一般缺陷")) { 
 | 
            return deviceDefectRecordMapper.insert(deviceDefectRecord) > 0; 
 | 
        } 
 | 
        return false; 
 | 
    } 
 | 
  
 | 
    @Override 
 | 
    public boolean updateByDDR(DeviceDefectRecord deviceDefectRecord) { 
 | 
        String status = deviceDefectRecord.getStatus(); 
 | 
        if (status.equals("严重缺陷")) { 
 | 
//            deviceDefectRecord.setStatus("正常"); 
 | 
//            deviceDefectRecord.setEliminateTime(LocalDateTime.now()); 
 | 
            throw new RuntimeException("严重缺陷-设备维修后更新为正常状态"); 
 | 
        } else if (status.equals("一般缺陷")) { 
 | 
            deviceDefectRecord.setStatus("正常"); 
 | 
        } 
 | 
        deviceDefectRecord.setEliminateTime(LocalDateTime.now()); 
 | 
        return updateById(deviceDefectRecord); 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |