feat: 导入棒管检验测试通过

This commit is contained in:
caoqianming 2025-05-21 14:56:50 +08:00
parent a2e45d6954
commit 36790a72b4
1 changed files with 52 additions and 33 deletions

View File

@ -1,6 +1,6 @@
from rest_framework.exceptions import ParseError from rest_framework.exceptions import ParseError
from apps.mtm.models import Process, Material 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.utils.tools import ranstr
from apps.mtm.services_2 import cal_material_count 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): def daoru_mioitem_test(path:str, mioitem:MIOItem):
from apps.utils.snowflake import idWorker from apps.utils.snowflake import idWorker
from openpyxl import load_workbook 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_user = mioitem.mio.mio_user
test_date = mioitem.mio.inout_date
wb = load_workbook(path) wb = load_workbook(path)
sheet = wb["Sheet1"] sheet = wb["Sheet1"]
i = 4
n = 1 mioitemws = MIOItemw.objects.filter(mioitem=mioitem).order_by("number")
while sheet[f"c{i}"].value:
number = mioitem.number + "-" + str(n) for ind, item in enumerate(mioitemws):
ftest, _ = Ftest.objects.get_or_create( ftest:Ftest = item.ftest
type="purin", if ftest is None:
test_numer=number, defaults={ ftest = Ftest.objects.create(
"qct": qct, type="purin",
"test_user": test_user, test_numer=item.number,
"is_ok": True qct=qct,
}) test_user=test_user,
FtestItem.objects.filter(ftest=ftest).delete() is_ok=True,
ftestitems = [] test_date=test_date)
ftestitems.append(FtestItem(ftest=ftest, testitem=ptxh, test_val_json=sheet[f"b{i}"].value, test_user=test_user, id=idWorker.get_id())) item.ftest = ftest
ftestitems.append(FtestItem(ftest=ftest, testitem=bbh, test_val_json=sheet[f"c{i}"].value, test_user=test_user, id=idWorker.get_id())) item.save()
ftestitems.append(FtestItem(ftest=ftest, testitem=bzdwj, test_val_json=sheet[f"e{i}"].value, test_user=test_user, id=idWorker.get_id())) else:
ftestitems.append(FtestItem(ftest=ftest, testitem=zd, test_val_json=sheet[f"f{i}"].value, test_user=test_user, id=idWorker.get_id())) FtestItem.objects.filter(ftest=ftest).delete()
ftestitems.append(FtestItem(ftest=ftest, testitem=gbh, test_val_json=sheet[f"g{i}"].value, test_user=test_user, id=idWorker.get_id())) FtestDefect.objects.filter(ftest=ftest).delete()
ftestitems.append(FtestItem(ftest=ftest, testitem=gzdnj, test_val_json=sheet[f"j{i}"].value, test_user=test_user, id=idWorker.get_id())) ftest.is_ok = True
ftestitems.append(FtestItem(ftest=ftest, testitem=phjx, test_val_json=sheet[f"k{i}"].value, test_user=test_user, id=idWorker.get_id())) ftest.defect_main = None
FtestItem.objects.bulk_create(ftestitems) ftest.save()
i = i + 1
n = n + 1 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