package com.by4cloud.platformx.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.by4cloud.platformx.common.core.util.R; import com.by4cloud.platformx.device.constant.CommonStatusContant; import com.by4cloud.platformx.device.constant.MaxSizeContant; import com.by4cloud.platformx.device.dto.DeviceRepairQueryDTO; import com.by4cloud.platformx.device.entity.DeviceInventory; import com.by4cloud.platformx.device.entity.DeviceRepair; import com.by4cloud.platformx.device.entity.WorkOrder; import com.by4cloud.platformx.device.mapper.DeviceInventoryMapper; import com.by4cloud.platformx.device.mapper.DeviceRepairMapper; import com.by4cloud.platformx.device.mapper.WorkOrderMapper; import com.by4cloud.platformx.device.service.DeviceRepairService; import com.by4cloud.platformx.device.service.JcMaxSizeService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; /** * 设备维修 * * @author syt * @date 2025-03-31 13:51:53 */ @Service @AllArgsConstructor public class DeviceRepairServiceImpl extends ServiceImpl implements DeviceRepairService { private final DeviceInventoryMapper inventoryMapper; private final JcMaxSizeService maxSizeService; private final WorkOrderMapper workOrderMapper; @Override public R approved(Long id) { DeviceRepair repair = baseMapper.selectById(id); repair.setStatus(CommonStatusContant.DEVICE_REPAIR_STATUS_REPAIRING); baseMapper.updateById(repair); DeviceInventory inventory = inventoryMapper.selectById(repair.getInventoryId()); inventory.setInventoryStatus(CommonStatusContant.DEVICE_INVENTORY_REPAIRING); inventoryMapper.updateById(inventory); return R.ok(); } @Override public R complete(Long id) { DeviceRepair repair = baseMapper.selectById(id); repair.setStatus(CommonStatusContant.DEVICE_REPAIR_STATUS_COMPLETE); baseMapper.updateById(repair); DeviceInventory inventory = inventoryMapper.selectById(repair.getInventoryId()); inventory.setInventoryStatus(CommonStatusContant.DEVICE_INVENTORY_USABLE); inventoryMapper.updateById(inventory); return R.ok(); } @Override public IPage pageNew(Page page, DeviceRepairQueryDTO queryDTO) { return baseMapper.pageNew(page,queryDTO); } @Override public R genWorkOrder(Long id) { DeviceRepair repair = baseMapper.selectById(id); WorkOrder workOrder = new WorkOrder(); workOrder.setRepairId(id); workOrder.setWoCode(maxSizeService.nextNo(MaxSizeContant.DEVICE_PURCHASE_CODE)); workOrder.setWoDesc(repair.getRepairDesc()); workOrder.setWoType(CommonStatusContant.WORK_ORDER_TYPE_REPAIR); workOrder.setWoStatus(CommonStatusContant.WORK_ORDER_STATUS_ALLOCATED); workOrderMapper.insert(workOrder); repair.setWoFlag(CommonStatusContant.DEVICE_REPAIR_FLAG_Y); baseMapper.updateById(repair); return R.ok(); } }