package com.ruoyi.device.controller; 
 | 
  
 | 
  
 | 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
 | 
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 
 | 
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 
 | 
import com.ruoyi.device.dto.DeviceLedgerDto; 
 | 
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.device.service.IDeviceMaintenanceService; 
 | 
import com.ruoyi.framework.aspectj.lang.annotation.Anonymous; 
 | 
import com.ruoyi.framework.web.domain.AjaxResult; 
 | 
import io.swagger.annotations.Api; 
 | 
import io.swagger.annotations.ApiModelProperty; 
 | 
import io.swagger.annotations.ApiOperation; 
 | 
import org.apache.commons.lang3.ArrayUtils; 
 | 
import org.ehcache.spi.service.MaintainableService; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
import org.springframework.web.multipart.MultipartFile; 
 | 
  
 | 
import javax.servlet.http.HttpServletResponse; 
 | 
import java.io.IOException; 
 | 
import java.util.ArrayList; 
 | 
import java.util.Arrays; 
 | 
import java.util.List; 
 | 
  
 | 
@Api(tags = "设备台账管理") 
 | 
@RequestMapping("/device/ledger") 
 | 
@RestController 
 | 
public class DeviceLedgerController { 
 | 
  
 | 
    @Autowired 
 | 
    private IDeviceLedgerService deviceLedgerService; 
 | 
  
 | 
    @Autowired 
 | 
    private DeviceLedgerMapper deviceLedgerMapper; 
 | 
  
 | 
    @Autowired 
 | 
    private DeviceMaintenanceMapper deviceMaintenanceMapper; 
 | 
  
 | 
    @ApiModelProperty("设备台账列表") 
 | 
    @GetMapping("/page") 
 | 
    public AjaxResult page(Page page , DeviceLedgerDto deviceLedger) { 
 | 
        return AjaxResult.success(deviceLedgerService.queryPage(page,deviceLedger)); 
 | 
    } 
 | 
  
 | 
    @PostMapping() 
 | 
    @ApiModelProperty("添加设备台账") 
 | 
    public AjaxResult add(@RequestBody DeviceLedger deviceLedger) { 
 | 
  
 | 
        return deviceLedgerService.saveDeviceLedger(deviceLedger); 
 | 
    } 
 | 
  
 | 
    @ApiModelProperty("根据id查询设备台账") 
 | 
    @GetMapping("/{id}") 
 | 
    public AjaxResult detail(@PathVariable Long id) { 
 | 
        return AjaxResult.success(deviceLedgerService.getById(id)); 
 | 
    } 
 | 
  
 | 
    @PutMapping () 
 | 
    @ApiModelProperty("修改设备台账") 
 | 
    public AjaxResult update(@RequestBody DeviceLedger deviceLedger) { 
 | 
        return deviceLedgerService.updateDeviceLedger(deviceLedger); 
 | 
    } 
 | 
  
 | 
    @DeleteMapping("/{ids}") 
 | 
    @ApiModelProperty("删除设备台账") 
 | 
    public AjaxResult delete(@PathVariable("ids") ArrayList<Long> ids) { 
 | 
        boolean b = deviceLedgerService.removeBatchByIds(ids); 
 | 
        if (!b) { 
 | 
            return AjaxResult.error("删除失败"); 
 | 
        } 
 | 
        return AjaxResult.success(); 
 | 
    } 
 | 
  
 | 
    @PostMapping("export") 
 | 
    @ApiModelProperty("导出设备台账") 
 | 
    public void export(HttpServletResponse response, Long[] ids) { 
 | 
         deviceLedgerService.export(response, ids); 
 | 
    } 
 | 
  
 | 
    @PostMapping("import") 
 | 
    @ApiModelProperty("导入设备台账") 
 | 
    public AjaxResult importData(MultipartFile file) throws IOException { 
 | 
        Boolean b = deviceLedgerService.importData(file); 
 | 
        if (b) { 
 | 
            return AjaxResult.success("导入成功"); 
 | 
        } 
 | 
        return AjaxResult.error("导入失败"); 
 | 
    } 
 | 
  
 | 
  
 | 
    @GetMapping("getDeviceLedger") 
 | 
    @ApiModelProperty("获取设备台账") 
 | 
    public AjaxResult getDeviceLedger( ) { 
 | 
        return AjaxResult.success(deviceLedgerService.list(new QueryWrapper<DeviceLedger>().lambda() 
 | 
                .select(DeviceLedger::getId, DeviceLedger::getDeviceName,DeviceLedger::getDeviceModel))); 
 | 
    } 
 | 
  
 | 
    @GetMapping("scanDevice") 
 | 
    @ApiOperation("获取设备台账") 
 | 
    @Anonymous 
 | 
    public AjaxResult scanDevice(Long id) { 
 | 
        List<DeviceMaintenance> 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); 
 | 
    } 
 | 
} 
 |