package com.yuanchu.mom.controller; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.read.listener.PageReadListener; 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.extension.plugins.pagination.Page; import com.yuanchu.mom.annotation.ValueClassify; import com.yuanchu.mom.excel.FeCalibrationScheduleExport; import com.yuanchu.mom.pojo.FeCalibrationSchedule; import com.yuanchu.mom.service.FeCalibrationScheduleService; import com.yuanchu.mom.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List; /** *

* 仪器设备检定/校准计划表 前端控制器 *

* * @author 芯导软件(江苏)有限公司 * @since 2024-11-13 02:53:05 */ @Api(tags = "量值溯源计划") @RestController @RequestMapping("/feCalibrationSchedule") public class FeCalibrationScheduleController { @Resource private FeCalibrationScheduleService feCalibrationScheduleService; @ValueClassify(value = "量值溯源计划") @ApiOperation(value = "量值溯源计划查询") @GetMapping("/getPageCalibrationSchedule") public Result> getPageCalibrationSchedule(Page page, String instrumentName, String managementNumber) { IPage ipage = feCalibrationScheduleService.page(page,instrumentName, managementNumber); return Result.success(ipage); } @ValueClassify(value = "量值溯源计划") @ApiOperation(value = "量值溯源计划新增编辑") @PostMapping("/addCalibrationSchedule") public Result addCalibrationSchedule(@RequestBody FeCalibrationSchedule feCalibrationSchedule) { return Result.success(feCalibrationScheduleService.saveOrUpdate(feCalibrationSchedule)); } @ValueClassify(value = "量值溯源计划") @ApiOperation(value = "量值溯源计划删除") @GetMapping("/removeCalibrationSchedule") public Result removeCalibrationSchedule(Integer id) { return Result.success(feCalibrationScheduleService.removeById(id)); } @ValueClassify(value = "量值溯源计划") @ApiOperation(value = "量值溯源计划导出") @PostMapping("exportOfValueTraceabilityPlan") public void exportOfValueTraceabilityPlan(String instrumentName, String managementNumber, HttpServletResponse response) throws Exception { IPage data = feCalibrationScheduleService.page(new Page<>(-1, -1),instrumentName, managementNumber); List studentList = JSONObject.parseArray(JSON.toJSONString(data.getRecords()), FeCalibrationScheduleExport.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(FeCalibrationScheduleExport.class) .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 自适应列宽 .sheet("sheet") .doWrite(studentList); } @ValueClassify(value = "量值溯源计划") @ApiOperation(value = "量值溯源计划导入") @PostMapping("/importOfValueTraceabilityPlan") public void importOfValueTraceabilityPlan(MultipartFile file) throws IOException { if (file.isEmpty()) { return; } EasyExcel.read(file.getInputStream(), FeCalibrationScheduleExport.class, new PageReadListener(dataList -> { List studentList = JSONObject.parseArray(JSON.toJSONString(dataList), FeCalibrationSchedule.class); feCalibrationScheduleService.saveOrUpdateBatch(studentList); })).sheet().doRead(); } }