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 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 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); } }