feat: 导入棒管检验测试通过
This commit is contained in:
parent
a2e45d6954
commit
36790a72b4
|
@ -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
|
||||||
|
if ftest is None:
|
||||||
|
ftest = Ftest.objects.create(
|
||||||
type="purin",
|
type="purin",
|
||||||
test_numer=number, defaults={
|
test_numer=item.number,
|
||||||
"qct": qct,
|
qct=qct,
|
||||||
"test_user": test_user,
|
test_user=test_user,
|
||||||
"is_ok": True
|
is_ok=True,
|
||||||
})
|
test_date=test_date)
|
||||||
|
item.ftest = ftest
|
||||||
|
item.save()
|
||||||
|
else:
|
||||||
FtestItem.objects.filter(ftest=ftest).delete()
|
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 = []
|
||||||
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=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=bbh, test_val_json=sheet[f"c{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=bzdwj, test_val_json=sheet[f"e{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=zd, test_val_json=sheet[f"f{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=gbh, test_val_json=sheet[f"g{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=gzdnj, test_val_json=sheet[f"j{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=phjx, test_val_json=sheet[f"k{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)
|
FtestItem.objects.bulk_create(ftestitems)
|
||||||
i = i + 1
|
else:
|
||||||
n = n + 1
|
break
|
Loading…
Reference in New Issue