package com.ruoyi.safe.specialequipment.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.safe.specialequipment.mapper.SpecialEquipmentLedgerMapper; import com.ruoyi.safe.specialequipment.mapper.SpecialEquipmentRecordMapper; import com.ruoyi.safe.specialequipment.pojo.SpecialEquipmentLedger; import com.ruoyi.safe.specialequipment.pojo.SpecialEquipmentRecord; import com.ruoyi.safe.specialequipment.service.SpecialEquipmentRecordService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.time.LocalDateTime; @Service @RequiredArgsConstructor public class SpecialEquipmentRecordServiceImpl extends ServiceImpl implements SpecialEquipmentRecordService { private final SpecialEquipmentRecordMapper mapper; private final SpecialEquipmentLedgerMapper ledgerMapper; public IPage listPage(Page page, SpecialEquipmentRecord req) { return mapper.listPage(page, req); } public boolean save(SpecialEquipmentRecord entity) { entity.setTenantId(SecurityUtils.getLoginUser().getTenantId()); entity.setCreateUser(SecurityUtils.getLoginUser().getUserId()); entity.setCreateTime(LocalDateTime.now()); boolean saved = super.save(entity); syncLedgerDate(entity); return saved; } @Override public boolean updateById(SpecialEquipmentRecord entity) { boolean updated = super.updateById(entity); syncLedgerDate(entity); return updated; } private void syncLedgerDate(SpecialEquipmentRecord entity) { if (entity == null || entity.getEquipmentId() == null || entity.getRecordType() == null) { return; } SpecialEquipmentLedger ledger = ledgerMapper.selectById(entity.getEquipmentId()); if (ledger == null) { return; } if (entity.getRecordType() == 1) { ledger.setLatestInspectionDate(entity.getRecordDate()); ledger.setNextInspectionDate(entity.getNextDueDate()); } else if (entity.getRecordType() == 2) { ledger.setLatestMaintenanceDate(entity.getRecordDate()); ledger.setNextMaintenanceDate(entity.getNextDueDate()); } ledgerMapper.updateById(ledger); } }