hsy
2026-08-28 a8e4132c3e2e9c3b3fcb0360901b35571b6464ea
src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceServiceImpl.java
@@ -21,7 +21,11 @@
import com.ruoyi.measuringinstrumentledger.pojo.SparePartsRequisitionRecord;
import com.ruoyi.measuringinstrumentledger.service.SparePartsRequisitionRecordService;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import com.ruoyi.device.service.IDeviceRepairSparePartService;
import com.ruoyi.device.pojo.DeviceRepairSparePart;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -38,6 +42,7 @@
    private final DeviceMaintenanceMapper deviceMaintenanceMapper;
    private final SparePartsMapper sparePartsMapper;
    private final SparePartsRequisitionRecordService sparePartsRequisitionRecordService;
    private final IDeviceRepairSparePartService deviceRepairSparePartService;
    private final FileUtil fileUtil;
    @Override
@@ -62,6 +67,12 @@
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult updateDeviceDeviceMaintenance(DeviceMaintenanceDto deviceMaintenance) {
        DeviceMaintenance oldDeviceMaintenance = this.getById(deviceMaintenance.getId());
        // 清理旧的备件使用记录,防止重复累计
        deviceRepairSparePartService.remove(new QueryWrapper<DeviceRepairSparePart>()
                .eq("source_id", deviceMaintenance.getId())
                .eq("source_type", 2));
        // 处理备件使用情况
        if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(deviceMaintenance.getSparePartsUseList())) {
            List<Long> sparePartIds = new ArrayList<>();
@@ -84,6 +95,14 @@
                        record.setSparePartsId(sparePartUse.getId());
                        record.setQuantity(sparePartUse.getQuantity());
                        sparePartsRequisitionRecordService.save(record);
                        // 插入记录到 device_repair_spare_part
                        DeviceRepairSparePart partRecord = new DeviceRepairSparePart();
                        partRecord.setSourceId(deviceMaintenance.getId());
                        partRecord.setSourceType(2); // 2 保养
                        partRecord.setSparePartId(sparePartUse.getId());
                        partRecord.setQuantity(sparePartUse.getQuantity());
                        deviceRepairSparePartService.save(partRecord);
                    } else {
                        return AjaxResult.error("备件 " + spareParts.getName() + " 数量不足");
                    }
@@ -122,6 +141,8 @@
    public DeviceMaintenanceVo detailById(Long id) {
        DeviceMaintenanceVo vo = deviceMaintenanceMapper.detailById(id);
        vo.setStorageBlobVOs(fileUtil.getStorageBlobVOsByRecordTypeAndRecordId(RecordTypeEnum.DEVICE_MAINTENANCE, id));
        List<DeviceRepairSparePart> parts = deviceRepairSparePartService.getListWithPartName(id, 2);
        vo.setSparePartsUseListDetails(parts);
        return vo;
    }
}