package com.yuanchu.mom.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuanchu.mom.dto.DeviceFaultOneDto;
import com.yuanchu.mom.excel.DeviceFaultOneExport;
import com.yuanchu.mom.numgen.NumberGenerator;
import com.yuanchu.mom.pojo.DeviceFaultOne;
import com.yuanchu.mom.service.DeviceFaultOneService;
import com.yuanchu.mom.vo.Result;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
/**
*
* 设备故障表 前端控制器
*
*
* @author
* @since 2024-09-26 02:03:29
*/
@RestController
@RequestMapping("/deviceFaultOne")
public class DeviceFaultOneController {
@Autowired
private DeviceFaultOneService deviceFaultOneService;
@Autowired
private NumberGenerator numberGenerator;
@GetMapping("/deviceFaultOnePage")
public Result deviceFaultOnePage(@RequestParam("deviceId") Integer deviceId, Page page, String processNumber) {
return Result.success(deviceFaultOneService.deviceFaultOnePage(deviceId,page, processNumber));
}
@PostMapping("/addOrUpdateDeviceFaultOne")
public Result addOrUpdateDeviceFaultOne(@RequestBody DeviceFaultOne deviceFaultOne) {
if (ObjectUtils.isEmpty(deviceFaultOne.getProcessNumber())) {
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, DeviceFaultOne::getProcessNumber);
deviceFaultOne.setProcessNumber(processNumber);
}
return Result.success(deviceFaultOneService.saveOrUpdate(deviceFaultOne));
}
@DeleteMapping("/deleteDeviceFaultOne")
public Result deleteDeviceFaultOne(@RequestParam("id") Integer id) {
return Result.success(deviceFaultOneService.removeById(id));
}
@ApiOperation(value = "奖惩记录导出")
@PostMapping("exportRewardAndPunishmentRecords")
public void exportRewardAndPunishmentRecords(@RequestParam("deviceId") Integer deviceId, String processNumber,
HttpServletResponse response) throws Exception {
IPage data = deviceFaultOneService.deviceFaultOnePage(deviceId, new Page<>(1, -1), processNumber);
List studentList = JSONObject.parseArray(JSON.toJSONString(data.getRecords()), DeviceFaultOneExport.class);
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("requestType", "excel");
response.setHeader("Access-Control-Expose-Headers", "requestType");
// 设置单元格样式
// 保存到第一个sheet中
EasyExcel.write(response.getOutputStream())
.head(DeviceFaultOneExport.class)
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 自适应列宽
.sheet("sheet")
.doWrite(studentList);
}
}