package com.qianwen.smartman.modules.trace.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import java.util.List; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.core.boot.ctrl.BladeController; import com.qianwen.core.excel.util.ExcelUtil; import com.qianwen.core.mp.support.Query; import com.qianwen.core.oss.model.BladeFile; import com.qianwen.core.scanner.modular.annotation.GetResource; import com.qianwen.core.scanner.modular.annotation.PostResource; import com.qianwen.core.scanner.modular.stereotype.ApiResource; import com.qianwen.core.secure.annotation.PreAuth; import com.qianwen.core.tool.api.R; import com.qianwen.core.tool.utils.DateUtil; import com.qianwen.smartman.modules.mdc.vo.ProParamSheetVO; import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder; import com.qianwen.smartman.modules.trace.service.ITraceFlowRecordService; import com.qianwen.smartman.modules.trace.vo.OtherWorkstationVO; import com.qianwen.smartman.modules.trace.vo.TraceCatalogAndFlowRecordVO; import com.qianwen.smartman.modules.trace.vo.TraceCatalogFlowRecordExportVO; import com.qianwen.smartman.modules.trace.vo.TraceCatalogSearchVO; import com.qianwen.smartman.modules.trace.vo.WorkpieceTraceSearchVO; import com.qianwen.smartman.modules.trace.vo.WorkpieceTraceVO; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; @Api(value = "工件流程记录管理", tags = {"trace-flow-record"}) @ApiResource({"blade-trace/trace-flow-record"}) @RestController public class TraceFlowRecordController extends BladeController { private final OssBuilder ossBuilder; private ITraceFlowRecordService traceFlowRecordService; public TraceFlowRecordController(final OssBuilder ossBuilder, final ITraceFlowRecordService traceFlowRecordService) { this.ossBuilder = ossBuilder; this.traceFlowRecordService = traceFlowRecordService; } @ApiOperationSupport(order = 1) @GetResource({"/record"}) @ApiOperation(value = "根据工件编码获取工件流程记录", notes = "传入工件编码") @PreAuth public R getTraceCatalogAndFlowRecord(@RequestParam("partNo") @ApiParam(value = "工件编号", required = true) String partNo, @RequestParam(value = "workstationId", required = false) @ApiParam("工位id") String workstationId) { return R.data(this.traceFlowRecordService.getTraceCatalogAndFlowRecord(partNo, workstationId)); } @ApiOperationSupport(order = 2) @GetResource({"/other-process-parameter"}) @ApiOperation("其他设备类型获取工件流程记录") @PreAuth public R otherProcessParameter(@RequestParam("partNo") @ApiParam(value = "工件编号", required = true) String partNo, @RequestParam("id") @ApiParam(value = "加工流程id", required = true) String id) { return R.data(this.traceFlowRecordService.getOtherProcessParameter(partNo, id)); } /* @ApiOperationSupport(order = 3) @GetResource({"/workstation-process-parameter"}) @ApiOperation("加工设备类型获取工件流程记录") @PreAuth public R processParameter(@RequestParam("id") @ApiParam(value = "加工流程id", required = true) String id, @RequestParam("shiftIndex") @ApiParam(value = "班次", required = true) Integer shiftIndex) { return R.data(this.traceFlowRecordService.getProcessParameter(id, shiftIndex)); }*/ @ApiOperationSupport(order = 4) @PostResource({"/export"}) @ApiOperation("导出追溯") @PreAuth public R exportDncLog(@RequestBody TraceCatalogSearchVO traceCatalogSearchVO) { List exportData = this.traceFlowRecordService.getExportData(traceCatalogSearchVO); String fileName = String.format("%s-%s.xlsx", "追溯查询导出", DateUtil.time()); MultipartFile multipartFile = ExcelUtil.exportToMultipartFile(fileName, "追溯报表", exportData, TraceCatalogFlowRecordExportVO.class); BladeFile bladeFile = this.ossBuilder.tempTemplate().putFile(multipartFile.getOriginalFilename(), multipartFile); return R.data(bladeFile); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @PostResource({"/page/record-ng"}) @ApiOperation("工件追溯") @PreAuth public R> workpieceTracePage(@RequestBody WorkpieceTraceSearchVO vo, Query query) { return R.data(this.traceFlowRecordService.workpieceTracePage(vo, query)); } @ApiOperationSupport(order = 6) @PostResource({"/export/record-ng"}) @ApiOperation("导出工件追溯") @PreAuth public R exportWorkpieceTrace(@RequestBody WorkpieceTraceSearchVO vo) { return R.data(this.traceFlowRecordService.exportWorkpieceTrace(vo)); } }