/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.sxkj.fw.device.service.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.AllArgsConstructor; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.utils.AuthUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.sxkj.fw.device.dto.FwDeviceScrapDTO; import org.sxkj.fw.device.entity.FwDeviceEntity; import org.sxkj.fw.device.entity.FwDeviceScrapEntity; import org.sxkj.fw.device.excel.FwDeviceScrapExcel; import org.sxkj.fw.device.mapper.FwDeviceScrapMapper; import org.sxkj.fw.device.service.IFwDeviceScrapService; import org.sxkj.fw.device.service.IFwDeviceService; import org.sxkj.fw.device.vo.FwDeviceScrapVO; import org.sxkj.fw.device.wrapper.FwDeviceScrapWrapper; import org.sxkj.system.cache.SysCache; import java.util.Collections; import java.util.List; /** * 设备报废记录表 服务实现类 * * @author lw * @since 2026-01-08 */ @Service @AllArgsConstructor public class FwDeviceScrapServiceImpl extends BaseServiceImpl implements IFwDeviceScrapService { private final IFwDeviceService fwDeviceService; @Override public FwDeviceScrapVO getFwDeviceScrapById(Long id) { return baseMapper.getFwDeviceScrapById(id); } @Override @Transactional public boolean saveFwDeviceScrap(FwDeviceScrapDTO dto) { // 先保存报废记录,成功后再处理设备状态与逻辑删除 boolean isSuccess = super.save(FwDeviceScrapWrapper.build().entityDTO(dto)); if (isSuccess) { FwDeviceEntity fwDevice = new FwDeviceEntity(); fwDevice.setId(dto.getDeviceId()); fwDevice.setStatus(3); // 更新设备状态并做逻辑删除,保持报废与设备状态一致 isSuccess = fwDeviceService.updateById(fwDevice) && fwDeviceService.deleteLogic(Collections.singletonList(fwDevice.getId())); } return isSuccess; } @Override public IPage selectFwDeviceScrapPage(IPage page, FwDeviceScrapDTO fwDeviceScrap) { // 按当前部门及下级部门范围过滤数据 if (!AuthUtil.isAdministrator()) { List deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId())); fwDeviceScrap.setDeptList(deptList); } return page.setRecords(baseMapper.selectFwDeviceScrapPage(page, fwDeviceScrap)); } @Override public List exportFwDeviceScrap(Wrapper queryWrapper) { List fwDeviceScrapList = baseMapper.exportFwDeviceScrap(queryWrapper); return fwDeviceScrapList; } }