package com.yuanchu.mom.controller;
|
|
import com.alibaba.excel.EasyExcel;
|
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
|
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.yuanchu.mom.annotation.ValueAuth;
|
import com.yuanchu.mom.excel.DeviceMaintenanceExport;
|
import com.yuanchu.mom.numgen.NumberGenerator;
|
import com.yuanchu.mom.pojo.DeviceMaintenance;
|
import com.yuanchu.mom.service.DeviceMaintenanceService;
|
import com.yuanchu.mom.vo.Result;
|
import io.swagger.annotations.ApiOperation;
|
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
import org.apache.poi.ss.usermodel.VerticalAlignment;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Locale;
|
|
@RestController
|
@RequestMapping("/device-maintain")
|
public class DeviceMaintenanceController {
|
|
@Autowired
|
private DeviceMaintenanceService deviceMaintenanceService;
|
|
@Autowired
|
private NumberGenerator<DeviceMaintenance> numberGenerator;
|
//增
|
@PostMapping()
|
public Result create(DeviceMaintenance deviceMaintenance){
|
String year = new SimpleDateFormat("yy", Locale.CHINESE).format(new Date());
|
String month = new SimpleDateFormat("MM", Locale.CHINESE).format(new Date());
|
String processNumber = numberGenerator.generateNumberWithPrefix(3, "DG-TC-23FM " + month + "-" + year + month, DeviceMaintenance::getDeviceNumber);
|
deviceMaintenance.setDeviceNumber(processNumber);
|
return Result.success(deviceMaintenanceService.save(deviceMaintenance));
|
}
|
|
//通过deviceId查询维护数据
|
@GetMapping("/getDeviceMaintenancePage")
|
public Result getDeviceMaintenancePage(@RequestParam("deviceId") Integer deviceId, Page page, String deviceNumber){
|
return Result.success(deviceMaintenanceService.getDeviceMaintenancePage(page, deviceId, deviceNumber));
|
}
|
|
//删
|
@DeleteMapping("/delete/{id}")
|
public void deleteDeviceFault(@PathVariable Integer id) {
|
deviceMaintenanceService.removeById(id);
|
}
|
|
@GetMapping("/deviceMaintenanceExport")
|
public Result deviceMaintenanceExport(@RequestParam("deviceId") Integer deviceId, HttpServletResponse response) throws IOException {
|
List<DeviceMaintenanceExport> list = deviceMaintenanceService.deviceMaintenanceExport(deviceId);
|
response.setHeader("requestType","excel");
|
response.setHeader("Access-Control-Expose-Headers", "requestType");
|
// 设置单元格样式
|
// 保存到第一个sheet中
|
EasyExcel.write(response.getOutputStream())
|
.head(DeviceMaintenanceExport.class)
|
.registerWriteHandler(getHorizontalCellStyleStrategy((short) 12))
|
.sheet()
|
.doWrite(list);
|
return Result.success();
|
}
|
|
@ApiOperation(value = "设备维护记录导出")
|
@GetMapping("/exportMaintenanceRecord")
|
@ValueAuth
|
public void exportMaintenanceRecord(@RequestParam("deviceId") Integer deviceId, HttpServletResponse response) throws Exception {
|
deviceMaintenanceService.exportMaintenanceRecord(deviceId, response);
|
}
|
|
/**
|
* 单元格样式策略
|
*/
|
public static HorizontalCellStyleStrategy getHorizontalCellStyleStrategy(Short fontHeightInPoints) {
|
// 内容的策略
|
WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
|
|
// 【水平居中需要使用以下两行】
|
// 设置文字左右居中
|
contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
|
// 设置文字上下居中
|
contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
|
// 设置 自动换行
|
contentWriteCellStyle.setWrapped(true);
|
|
// 样式策略
|
return new HorizontalCellStyleStrategy(null, contentWriteCellStyle);
|
}
|
}
|