From 36790a72b43b28190f09fe761ea0ab277b6d297f Mon Sep 17 00:00:00 2001 From: caoqianming Date: Wed, 21 May 2025 14:56:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AF=BC=E5=85=A5=E6=A3=92=E7=AE=A1?= =?UTF-8?q?=E6=A3=80=E9=AA=8C=E6=B5=8B=E8=AF=95=E9=80=9A=E8=BF=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/inm/services_daoru.py | 85 +++++++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 33 deletions(-) diff --git a/apps/inm/services_daoru.py b/apps/inm/services_daoru.py index 22a69ba7..12734949 100644 --- a/apps/inm/services_daoru.py +++ b/apps/inm/services_daoru.py @@ -1,6 +1,6 @@ from rest_framework.exceptions import ParseError from apps.mtm.models import Process, Material -from apps.inm.models import WareHouse, MaterialBatch, MIOItem +from apps.inm.models import WareHouse, MaterialBatch, MIOItem, MIOItemw from apps.utils.tools import ranstr from apps.mtm.services_2 import cal_material_count @@ -65,40 +65,59 @@ def daoru_mb(path: str): def daoru_mioitem_test(path:str, mioitem:MIOItem): from apps.utils.snowflake import idWorker from openpyxl import load_workbook - from apps.qm.models import TestItem, Ftest, Qct, FtestItem + from apps.qm.models import TestItem, Ftest, Qct, FtestItem, FtestDefect + + qct = Qct.get(mioitem.material, tag="inm") + if qct is None: + raise ParseError("未找到检验表") + + t_name_list = ["配套序号", "棒编号", "棒最大外径/mm", "锥度/mm", "管编号", "管最大内径/mm", "配合间隙"] + t_list = [] + for name in t_name_list: + try: + t_list.append(TestItem.objects.get(name=name)) + except TestItem.DoesNotExist: + raise ParseError(f"未找到检验项:{name}") + except TestItem.MultipleObjectsReturned: + raise ParseError(f"检验项重复:{name}") - qct = Qct.get(mioitem.material) - ptxh = TestItem.objects.get(name="配套序号") - bbh = TestItem.objects.get(name="棒编号") - bzdwj = TestItem.object.get(name="棒最大外径/mm") - zd = TestItem.object.get(name="锥度/mm") - gbh = TestItem.objects.get(name="管编号") - gzdnj = TestItem.objects.get(name="管最大内径/mm") - phjx = TestItem.objects.get(name="配合间隙") test_user = mioitem.mio.mio_user + test_date = mioitem.mio.inout_date wb = load_workbook(path) sheet = wb["Sheet1"] - i = 4 - n = 1 - while sheet[f"c{i}"].value: - number = mioitem.number + "-" + str(n) - ftest, _ = Ftest.objects.get_or_create( - type="purin", - test_numer=number, defaults={ - "qct": qct, - "test_user": test_user, - "is_ok": True - }) - FtestItem.objects.filter(ftest=ftest).delete() - ftestitems = [] - ftestitems.append(FtestItem(ftest=ftest, testitem=ptxh, test_val_json=sheet[f"b{i}"].value, test_user=test_user, id=idWorker.get_id())) - ftestitems.append(FtestItem(ftest=ftest, testitem=bbh, test_val_json=sheet[f"c{i}"].value, test_user=test_user, id=idWorker.get_id())) - ftestitems.append(FtestItem(ftest=ftest, testitem=bzdwj, test_val_json=sheet[f"e{i}"].value, test_user=test_user, id=idWorker.get_id())) - ftestitems.append(FtestItem(ftest=ftest, testitem=zd, test_val_json=sheet[f"f{i}"].value, test_user=test_user, id=idWorker.get_id())) - ftestitems.append(FtestItem(ftest=ftest, testitem=gbh, test_val_json=sheet[f"g{i}"].value, test_user=test_user, id=idWorker.get_id())) - ftestitems.append(FtestItem(ftest=ftest, testitem=gzdnj, test_val_json=sheet[f"j{i}"].value, test_user=test_user, id=idWorker.get_id())) - ftestitems.append(FtestItem(ftest=ftest, testitem=phjx, test_val_json=sheet[f"k{i}"].value, test_user=test_user, id=idWorker.get_id())) - FtestItem.objects.bulk_create(ftestitems) - i = i + 1 - n = n + 1 \ No newline at end of file + + mioitemws = MIOItemw.objects.filter(mioitem=mioitem).order_by("number") + + for ind, item in enumerate(mioitemws): + ftest:Ftest = item.ftest + if ftest is None: + ftest = Ftest.objects.create( + type="purin", + test_numer=item.number, + qct=qct, + test_user=test_user, + is_ok=True, + test_date=test_date) + item.ftest = ftest + item.save() + else: + FtestItem.objects.filter(ftest=ftest).delete() + FtestDefect.objects.filter(ftest=ftest).delete() + ftest.is_ok = True + ftest.defect_main = None + ftest.save() + + i = ind + 4 + if sheet[f"c{i}"].value: + ftestitems = [] + ftestitems.append(FtestItem(ftest=ftest, testitem=t_list[0], test_val_json=sheet[f"b{i}"].value, test_user=test_user, id=idWorker.get_id())) + ftestitems.append(FtestItem(ftest=ftest, testitem=t_list[1], test_val_json=sheet[f"c{i}"].value, test_user=test_user, id=idWorker.get_id())) + ftestitems.append(FtestItem(ftest=ftest, testitem=t_list[2], test_val_json=sheet[f"e{i}"].value, test_user=test_user, id=idWorker.get_id())) + ftestitems.append(FtestItem(ftest=ftest, testitem=t_list[3], test_val_json=sheet[f"f{i}"].value, test_user=test_user, id=idWorker.get_id())) + ftestitems.append(FtestItem(ftest=ftest, testitem=t_list[4], test_val_json=sheet[f"g{i}"].value, test_user=test_user, id=idWorker.get_id())) + ftestitems.append(FtestItem(ftest=ftest, testitem=t_list[5], test_val_json=sheet[f"j{i}"].value, test_user=test_user, id=idWorker.get_id())) + ftestitems.append(FtestItem(ftest=ftest, testitem=t_list[6], test_val_json=sheet[f"k{i}"].value, test_user=test_user, id=idWorker.get_id())) + FtestItem.objects.bulk_create(ftestitems) + else: + break \ No newline at end of file