package com.ruoyi.requier.controller; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.Result; import com.ruoyi.common.numgen.NumberGenerator; import com.ruoyi.common.utils.FileSaveUtil; import com.ruoyi.requier.dto.DeviceMetricRecordDto; import com.ruoyi.requier.pojo.Device; import com.ruoyi.requier.pojo.DeviceMetricRecord; import com.ruoyi.requier.pojo.DeviceMetricsCopy; import com.ruoyi.requier.service.DeviceMetricRecordService; import com.ruoyi.requier.service.DeviceMetricsCopyService; import com.ruoyi.requier.service.DeviceService; import io.swagger.annotations.Api; 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.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Locale; /** *

* 设备校准 - 校准记录 前端控制器 *

* * @author 芯导软件(江苏)有限公司 * @since 2024-09-27 10:20:01 */ @Api(tags = "设备 - 设备校准") @RestController @RequestMapping("/deviceMetricRecord") public class DeviceMetricRecordController { @Autowired private DeviceMetricRecordService deviceMetricRecordService; @Autowired private DeviceMetricsCopyService deviceMetricsCopyService; @Autowired private NumberGenerator numberGenerator; @Autowired private DeviceService deviceService; @ApiOperation("设备校准分页查询") @GetMapping("/deviceMetricRecordPage") public Result deviceMetricRecordPage(@RequestParam("deviceId") Integer deviceId, Page page, @RequestParam("type") String type) { return Result.success(deviceMetricRecordService.page(page, Wrappers.lambdaQuery() .eq(DeviceMetricRecord::getDeviceId, deviceId) .eq(DeviceMetricRecord::getType, type))); } @ApiOperation("设备校准 新增 更新") @PostMapping("/addOrUpdateDeviceMetricRecord") public Result addOrUpdateDeviceMetricRecord(@RequestBody DeviceMetricRecordDto deviceMetricRecordDto) { if (ObjectUtils.isEmpty(deviceMetricRecordDto.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(5, "SBJZ" + year + month, DeviceMetricRecord::getProcessNumber); deviceMetricRecordDto.setProcessNumber(processNumber); } deviceMetricRecordService.saveOrUpdate(deviceMetricRecordDto); if (deviceMetricRecordDto.getType().equals("calibrate")) { deviceService.update(Wrappers.lambdaUpdate() .set(Device::getCalibrationServices,deviceMetricRecordDto.getUnitOfMeasure()) .eq(Device::getId,deviceMetricRecordDto.getDeviceId())); } if (CollectionUtils.isNotEmpty(deviceMetricRecordDto.getDeviceMetricsCopyList())) { deviceMetricRecordDto.getDeviceMetricsCopyList().forEach(i -> i.setDeviceMetricsId(deviceMetricRecordDto.getId())); deviceMetricsCopyService.saveOrUpdateBatch(deviceMetricRecordDto.getDeviceMetricsCopyList()); } return Result.success(); } @ApiOperation("设备校准 删除") @DeleteMapping("/deleteDeviceMetricRecord") public Result deleteDeviceMetricRecord(@RequestParam("id") Integer id) { DeviceMetricRecord deviceMetricRecord = deviceMetricRecordService.getById(id); deviceMetricsCopyService.remove(Wrappers.lambdaQuery() .eq(DeviceMetricsCopy::getDeviceMetricsId, id)); // 删除文件 FileSaveUtil.DeleteFile(deviceMetricRecord.getSystemFileName()); boolean b = deviceMetricRecordService.removeById(id); // 修改设备的校准机构 if (deviceMetricRecord.getType().equals("calibrate")) { List list = deviceMetricRecordService.list(Wrappers.lambdaQuery() .eq(DeviceMetricRecord::getType,"calibrate") .eq(DeviceMetricRecord::getDeviceId, deviceMetricRecord.getDeviceId())); int size = list.size(); // 设置设备中的校准机构为上次的机构 deviceService.update(Wrappers.lambdaUpdate() .set(Device::getCalibrationServices,size == 0 ? null : list.get(size - 1).getUnitOfMeasure()) .eq(Device::getId,deviceMetricRecord.getDeviceId())); } return Result.success(b); } @ApiOperation("设备校准 校准条目查询") @GetMapping("/showDeviceMetricsCopy") public Result showDeviceMetricsCopy(@RequestParam("id") Integer id, @RequestParam("type") String type) { return Result.success(deviceMetricsCopyService.list(Wrappers.lambdaQuery() .eq(DeviceMetricsCopy::getDeviceMetricsId, id) .eq(DeviceMetricsCopy::getType, type))); } @GetMapping("/deviceMetricRecordExport") public Result deviceMetricRecordExport(@RequestParam("deviceId") Integer deviceId, @RequestParam("type") String type, HttpServletResponse response) throws IOException { List list = deviceMetricRecordService.page(new Page<>(-1,-1), Wrappers.lambdaQuery() .eq(DeviceMetricRecord::getDeviceId, deviceId) .eq(DeviceMetricRecord::getType, type)).getRecords(); list.forEach(i -> i.setStatus(i.getStatus().equals("0yes") ? "合格" : "不合格")); response.setHeader("requestType", "excel"); response.setHeader("Access-Control-Expose-Headers", "requestType"); // 设置单元格样式 // 保存到第一个sheet中 EasyExcel.write(response.getOutputStream()) .head(DeviceMetricRecord.class) .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 自适应列宽 .sheet() .doWrite(list); return Result.success(); } }