package com.ruoyi.device.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.device.dto.DeviceLedgerDto; import com.ruoyi.device.execl.DeviceLedgerExeclDto; import com.ruoyi.device.mapper.DeviceLedgerMapper; import com.ruoyi.device.mapper.DeviceMaintenanceMapper; import com.ruoyi.device.pojo.DeviceLedger; import com.ruoyi.device.pojo.DeviceMaintenance; import com.ruoyi.device.service.IDeviceLedgerService; import com.ruoyi.framework.aspectj.lang.annotation.Anonymous; import com.ruoyi.framework.web.domain.AjaxResult; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.ArrayList; import java.util.List; @Tag(name = "设备台账管理") @RequestMapping("/device/ledger") @RestController @AllArgsConstructor public class DeviceLedgerController { private IDeviceLedgerService deviceLedgerService; private DeviceLedgerMapper deviceLedgerMapper; private DeviceMaintenanceMapper deviceMaintenanceMapper; @Operation(summary = "设备台账列表") @GetMapping("/page") public AjaxResult page(Page page , DeviceLedgerDto deviceLedger) { return AjaxResult.success(deviceLedgerService.queryPage(page,deviceLedger)); } @PostMapping() @Operation(summary = "添加设备台账") public AjaxResult add(@RequestBody DeviceLedger deviceLedger) { return deviceLedgerService.saveDeviceLedger(deviceLedger); } @Operation(summary = "根据id查询设备台账") @GetMapping("/{id}") public AjaxResult detail(@PathVariable Long id) { return AjaxResult.success(deviceLedgerService.getById(id)); } @PutMapping () @Operation(summary = "修改设备台账") public AjaxResult update(@RequestBody DeviceLedger deviceLedger) { return deviceLedgerService.updateDeviceLedger(deviceLedger); } @DeleteMapping("/{ids}") @Operation(summary = "删除设备台账") public AjaxResult delete(@PathVariable("ids") ArrayList ids) { boolean b = deviceLedgerService.removeBatchByIds(ids); if (!b) { return AjaxResult.error("删除失败"); } return AjaxResult.success(); } @PostMapping("export") @Operation(summary = "导出设备台账") public void export(HttpServletResponse response, Long[] ids) { deviceLedgerService.export(response, ids); } @Operation(summary = "下载模板") @PostMapping("/downloadTemplate") public void downloadTemplate(HttpServletResponse response) { ExcelUtil util = new ExcelUtil<>(DeviceLedgerExeclDto.class); util.importTemplateExcel(response, "设备导入模板"); } @PostMapping("/import") @Operation(summary = "导入设备台账") public AjaxResult importData(MultipartFile file) throws IOException { Boolean b = deviceLedgerService.importData(file); if (b) { return AjaxResult.success("导入成功"); } return AjaxResult.error("导入失败"); } @GetMapping("getDeviceLedger") @Operation(summary = "获取设备台账") public AjaxResult getDeviceLedger( ) { return AjaxResult.success(deviceLedgerService.list(new QueryWrapper().lambda() .select(DeviceLedger::getId, DeviceLedger::getDeviceName,DeviceLedger::getDeviceModel))); } @GetMapping("scanDevice") @Operation(summary = "获取设备台账") @Anonymous public AjaxResult scanDevice(Long id) { List list = deviceMaintenanceMapper.list1(id); DeviceLedger deviceLedger = deviceLedgerMapper.selectById1(id); if (list.size()>0){ deviceLedger.setUpdateTime(list.get(0).getMaintenanceActuallyTime());//最后维护时间 } deviceLedger.setCreateTime(deviceLedger.getUpdateTime().plusMonths(1));//下次维护时间 return AjaxResult.success(deviceLedger); } }