package com.jcdm.main.rm.repairRecord.controller; import java.io.IOException; import java.util.List; import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.collection.CollUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.jcdm.common.core.domain.R; import com.jcdm.common.core.domain.entity.SysDictData; import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; import com.jcdm.main.bs.orderScheduling.vo.FollowReportVO; import com.jcdm.main.da.paramCollection.domain.DaParamCollection; import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; import com.jcdm.main.rm.repairData.domain.RmRepairData; import com.jcdm.main.rm.repairRecord.vo.RmRepairDataVO; import com.jcdm.system.service.ISysDictDataService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.jcdm.common.annotation.Log; import com.jcdm.common.core.controller.BaseController; import com.jcdm.common.core.domain.AjaxResult; import com.jcdm.common.enums.BusinessType; import com.jcdm.main.rm.repairRecord.domain.RmRepairRecord; import com.jcdm.main.rm.repairRecord.service.IRmRepairRecordService; import com.jcdm.common.utils.poi.ExcelUtil; import com.jcdm.common.core.page.TableDataInfo; /** * 返修记录Controller * * @author Yi * @date 2023-12-22 */ @RestController @RequestMapping("/rm/repairRecord") public class RmRepairRecordController extends BaseController { @Autowired private IRmRepairRecordService rmRepairRecordService; @Resource private ISysDictDataService iSysDictDataService; /** * 查询返修记录列表 */ @PreAuthorize("@ss.hasPermi('rm:repairRecord:list')") @GetMapping("/list") public TableDataInfo list(RmRepairRecord rmRepairRecord) { startPage(); List list = rmRepairRecordService.selectRmRepairRecordList(rmRepairRecord); return getDataTable(list); } /** * 获取返修数据列表 * @param rmRepairRecord * @return */ @PreAuthorize("@ss.hasPermi('rm:repairRecord:list')") @GetMapping("/getRepairReportList") public R getRepairReportList(RmRepairRecord rmRepairRecord) { RmRepairDataVO repairReportList = rmRepairRecordService.getRepairReportList(rmRepairRecord); return R.ok(repairReportList); } @PreAuthorize("@ss.hasPermi('rm:repairRecord:export')") @Log(title = "返修数据报表导出", businessType = BusinessType.EXPORT) @PostMapping("/exportRepair") public void exportRepair(HttpServletResponse response, RmRepairRecord rmRepairRecord) { RmRepairDataVO repairReportList = rmRepairRecordService.getRepairReportList(rmRepairRecord); // List allDict = iSysDictDataService.selectDictDataList(null); String fileName = "追溯报表"; try { ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build(); WriteSheet mainSheet = EasyExcel.writerSheet(0, "返修数据") .head(RmRepairRecord.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) .build(); WriteSheet sheet1 = EasyExcel.writerSheet(1, "拧紧数据") .head(DaParamCollection.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) .build(); WriteSheet sheet2 = EasyExcel.writerSheet(2, "相机检测") .head(DaParamCollection.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) .build(); WriteSheet sheet3 = EasyExcel.writerSheet(3, "外漏检测") .head(DaParamCollection.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) .build(); WriteSheet sheet4 = EasyExcel.writerSheet(4, "机油加注") .head(DaParamCollection.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) .build(); WriteSheet sheet5 = EasyExcel.writerSheet(5, "工位结果") .head(DaPassingStationCollection.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) .build(); excelWriter.write(repairReportList.getMainList(),mainSheet); excelWriter.write(repairReportList.getList1(),sheet1); excelWriter.write(repairReportList.getList2(),sheet2); excelWriter.write(repairReportList.getList3(),sheet3); excelWriter.write(repairReportList.getList4(),sheet4); excelWriter.write(repairReportList.getList5(),sheet5); response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setCharacterEncoding("UTF-8"); response.setHeader("Content-Disposition","attachment;filename="+fileName+".xlsx"); excelWriter.finish(); } catch (IOException e) { throw new RuntimeException(e); } } /** * 不分页查询返修记录列表 */ @GetMapping("/noPagelist") public TableDataInfo noPagelist(RmRepairRecord rmRepairRecord) { List list = rmRepairRecordService.selectRmRepairRecordList(rmRepairRecord); return getDataTable(list); } /** * 导出返修记录列表 */ @PreAuthorize("@ss.hasPermi('rm:repairRecord:export')") @Log(title = "返修记录", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, RmRepairRecord rmRepairRecord) { List list = rmRepairRecordService.selectRmRepairRecordList(rmRepairRecord); ExcelUtil util = new ExcelUtil(RmRepairRecord.class); util.exportExcel(response, list, "返修记录数据"); } /** * 获取返修记录详细信息 */ @PreAuthorize("@ss.hasPermi('rm:repairRecord:query')") @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id) { return success(rmRepairRecordService.selectRmRepairRecordById(id)); } /** * 新增返修记录 */ @PreAuthorize("@ss.hasPermi('rm:repairRecord:add')") @Log(title = "返修记录", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody RmRepairRecord rmRepairRecord) { return toAjax(rmRepairRecordService.insertRmRepairRecord(rmRepairRecord)); } /** * 修改返修记录 */ @PreAuthorize("@ss.hasPermi('rm:repairRecord:edit')") @Log(title = "返修记录", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody RmRepairRecord rmRepairRecord) { return toAjax(rmRepairRecordService.updateRmRepairRecord(rmRepairRecord)); } /** * 删除返修记录 */ @PreAuthorize("@ss.hasPermi('rm:repairRecord:remove')") @Log(title = "返修记录", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(rmRepairRecordService.deleteRmRepairRecordByIds(ids)); } }