From 49a9cfc03520a443ede93ee13ef4970e1ac44c2d Mon Sep 17 00:00:00 2001 From: risingLee <871066422@qq.com> Date: Sun, 4 Jan 2026 16:16:03 +0800 Subject: [PATCH] =?UTF-8?q?as=5Fquery=20=E6=96=B9=E6=B3=95=E7=9A=84?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E7=B1=BB=E5=9E=8B=E5=AE=9A=E4=B9=89=E6=9C=89?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82receipt=5Fid:=20int=20=3D=20None=20?= =?UTF-8?q?=E5=BA=94=E8=AF=A5=E6=98=AF=20receipt=5Fid:=20Optional[int]=20?= =?UTF-8?q?=3D=20None?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/warehouse_sample_controller.py | 3 + .../entity/vo/warehouse_sample_vo.py | 12 +-- .../service/warehouse_receipt_service.py | 10 +++ .../src/views/warehouse/receipt/index.vue | 82 ++++++++++++++++++- 4 files changed, 99 insertions(+), 8 deletions(-) diff --git a/ruoyi-fastapi-backend/module_admin/controller/warehouse_sample_controller.py b/ruoyi-fastapi-backend/module_admin/controller/warehouse_sample_controller.py index 22bb51d..c7fa713 100644 --- a/ruoyi-fastapi-backend/module_admin/controller/warehouse_sample_controller.py +++ b/ruoyi-fastapi-backend/module_admin/controller/warehouse_sample_controller.py @@ -28,6 +28,9 @@ async def get_warehouse_sample_list( """ 获取样品列表 """ + # 添加日志 + print(f"DEBUG: 样品列表查询参数 - receipt_id={query_object.receipt_id}, receipt_no={query_object.receipt_no}") + sample_list = await WarehouseSampleService.get_sample_list(query_db, query_object, is_page=True) logger.info('获取成功') return ResponseUtil.success(dict_content=sample_list) diff --git a/ruoyi-fastapi-backend/module_admin/entity/vo/warehouse_sample_vo.py b/ruoyi-fastapi-backend/module_admin/entity/vo/warehouse_sample_vo.py index b4ed7e1..2cc89b1 100644 --- a/ruoyi-fastapi-backend/module_admin/entity/vo/warehouse_sample_vo.py +++ b/ruoyi-fastapi-backend/module_admin/entity/vo/warehouse_sample_vo.py @@ -49,12 +49,12 @@ class WarehouseSamplePageQueryModel(BaseModel): page_size: int = Field(default=10, description='每页记录数') @classmethod - def as_query(cls, page_num: int = 1, page_size: int = 10, receipt_id: int = None, - receipt_no: str = None, sample_model: str = None, sample_sn: str = None, - external_status: str = None, status: str = None): - return cls(pageNum=page_num, pageSize=page_size, receiptId=receipt_id, - receiptNo=receipt_no, sampleModel=sample_model, sampleSn=sample_sn, - externalStatus=external_status, status=status) + def as_query(cls, page_num: int = 1, page_size: int = 10, receiptId: Optional[int] = None, + receiptNo: Optional[str] = None, sampleModel: Optional[str] = None, sampleSn: Optional[str] = None, + externalStatus: Optional[str] = None, status: Optional[str] = None): + return cls(pageNum=page_num, pageSize=page_size, receiptId=receiptId, + receiptNo=receiptNo, sampleModel=sampleModel, sampleSn=sampleSn, + externalStatus=externalStatus, status=status) class AddWarehouseSampleModel(WarehouseSampleModel): diff --git a/ruoyi-fastapi-backend/module_admin/service/warehouse_receipt_service.py b/ruoyi-fastapi-backend/module_admin/service/warehouse_receipt_service.py index e551ae8..6122790 100644 --- a/ruoyi-fastapi-backend/module_admin/service/warehouse_receipt_service.py +++ b/ruoyi-fastapi-backend/module_admin/service/warehouse_receipt_service.py @@ -58,8 +58,18 @@ class WarehouseReceiptService: # 获取样品列表 from module_admin.entity.vo.warehouse_sample_vo import WarehouseSamplePageQueryModel sample_query = WarehouseSamplePageQueryModel(receipt_id=receipt.receipt_id, page_num=1, page_size=1000) + + # 添加日志 + print(f"DEBUG: 查询入库单 {receipt_id} 的样品,receipt.receipt_id={receipt.receipt_id}") + samples = await WarehouseSampleDao.get_sample_list(db, sample_query, is_page=False) + # 添加日志 + print(f"DEBUG: 查询到 {len(samples) if samples else 0} 个样品") + if samples: + for sample in samples[:3]: # 只打印前3个 + print(f"DEBUG: 样品 ID={sample.sample_id}, receipt_id={sample.receipt_id}, SN={sample.sample_sn}") + # 转换样品列表 samples_list = [CamelCaseUtil.transform_result(sample) for sample in samples] if samples else [] receipt_dict['samples'] = samples_list diff --git a/ruoyi-fastapi-frontend/src/views/warehouse/receipt/index.vue b/ruoyi-fastapi-frontend/src/views/warehouse/receipt/index.vue index 0363466..cd431b3 100644 --- a/ruoyi-fastapi-frontend/src/views/warehouse/receipt/index.vue +++ b/ruoyi-fastapi-frontend/src/views/warehouse/receipt/index.vue @@ -240,7 +240,14 @@ @@ -250,7 +257,14 @@ @@ -553,6 +567,70 @@ export default { /** 删除样品 */ handleDeleteSample(index) { this.form.samples.splice(index, 1); + }, + /** 查询样品型号建议(用于入库单编辑) */ + async querySampleModelForReceipt(queryString, cb) { + try { + // 从后端获取所有样品数据 + const { listSample } = await import("@/api/warehouse/sample"); + const response = await listSample({ pageNum: 1, pageSize: 1000 }); + const allSamples = response.rows || []; + + // 提取不重复的样品型号 + const models = [...new Set( + allSamples + .map(item => item.sampleModel) + .filter(model => model && model.trim() !== '') + )]; + + // 转换为 autocomplete 需要的格式 + const suggestions = models.map(model => ({ value: model })); + + // 如果有输入内容,进行模糊匹配(不区分大小写) + const results = queryString + ? suggestions.filter(item => + item.value.toLowerCase().includes(queryString.toLowerCase()) + ) + : suggestions; + + // 限制返回最多20项 + cb(results.slice(0, 20)); + } catch (error) { + console.error('查询样品型号失败:', error); + cb([]); + } + }, + /** 查询硬件版本号建议(用于入库单编辑) */ + async queryHardwareVersionForReceipt(queryString, cb) { + try { + // 从后端获取所有样品数据 + const { listSample } = await import("@/api/warehouse/sample"); + const response = await listSample({ pageNum: 1, pageSize: 1000 }); + const allSamples = response.rows || []; + + // 提取不重复的硬件版本号 + const versions = [...new Set( + allSamples + .map(item => item.hardwareVersion) + .filter(version => version && version.trim() !== '') + )]; + + // 转换为 autocomplete 需要的格式 + const suggestions = versions.map(version => ({ value: version })); + + // 如果有输入内容,进行模糊匹配(不区分大小写) + const results = queryString + ? suggestions.filter(item => + item.value.toLowerCase().includes(queryString.toLowerCase()) + ) + : suggestions; + + // 限制返回最多20项 + cb(results.slice(0, 20)); + } catch (error) { + console.error('查询硬件版本号失败:', error); + cb([]); + } } } };