package com.ruoyi.quality.controller;
|
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.framework.aspectj.lang.annotation.Log;
|
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
|
import com.ruoyi.framework.web.domain.R;
|
import com.ruoyi.quality.dto.QualityTraceBatchOptionVo;
|
import com.ruoyi.quality.dto.QualityTraceForwardExportVo;
|
import com.ruoyi.quality.dto.QualityTraceForwardVo;
|
import com.ruoyi.quality.dto.QualityTraceReverseExportVo;
|
import com.ruoyi.quality.dto.QualityTraceReverseVo;
|
import com.ruoyi.quality.service.QualityTraceService;
|
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
import jakarta.servlet.http.HttpServletResponse;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.util.List;
|
|
/**
|
* 生产质量追溯(批次链路)
|
*/
|
@RestController
|
@RequestMapping("/quality/trace")
|
@RequiredArgsConstructor
|
@Tag(name = "生产质量追溯")
|
public class QualityTraceController {
|
|
private final QualityTraceService qualityTraceService;
|
|
@GetMapping("/forward")
|
@Operation(summary = "正向追溯:成品批号→订单/工序/投入/领料批次/检验/出库流向")
|
@Log(title = "质量追溯正向查询", businessType = BusinessType.OTHER)
|
public R<QualityTraceForwardVo> forward(@RequestParam String batchNo) {
|
return R.ok(qualityTraceService.forward(batchNo));
|
}
|
|
@GetMapping("/batchOptions")
|
@Operation(summary = "批号候选:type=finished成品批号/material原料批号")
|
public R<List<QualityTraceBatchOptionVo>> batchOptions(@RequestParam(required = false, defaultValue = "finished") String type,
|
@RequestParam(required = false) String keyword,
|
@RequestParam(required = false, defaultValue = "50") Integer limit) {
|
return R.ok(qualityTraceService.batchOptions(type, keyword, limit));
|
}
|
|
@GetMapping("/reverse")
|
@Operation(summary = "反向追溯:原料批号→采购来源/使用订单/产出成品批号")
|
@Log(title = "质量追溯反向查询", businessType = BusinessType.OTHER)
|
public R<QualityTraceReverseVo> reverse(@RequestParam String batchNo) {
|
return R.ok(qualityTraceService.reverse(batchNo));
|
}
|
|
@GetMapping("/forward/export")
|
@Operation(summary = "正向追溯导出")
|
@Log(title = "质量追溯正向导出", businessType = BusinessType.EXPORT)
|
public void forwardExport(HttpServletResponse response, @RequestParam String batchNo) {
|
List<QualityTraceForwardExportVo> list = qualityTraceService.forwardExportRows(batchNo);
|
ExcelUtil<QualityTraceForwardExportVo> util = new ExcelUtil<>(QualityTraceForwardExportVo.class);
|
util.exportExcel(response, list, "成品批次追溯");
|
}
|
|
@GetMapping("/reverse/export")
|
@Operation(summary = "反向追溯导出")
|
@Log(title = "质量追溯反向导出", businessType = BusinessType.EXPORT)
|
public void reverseExport(HttpServletResponse response, @RequestParam String batchNo) {
|
List<QualityTraceReverseExportVo> list = qualityTraceService.reverseExportRows(batchNo);
|
ExcelUtil<QualityTraceReverseExportVo> util = new ExcelUtil<>(QualityTraceReverseExportVo.class);
|
util.exportExcel(response, list, "原料批次流向追溯");
|
}
|
}
|