feat: 日志变更模型以支持小数

This commit is contained in:
caoqianming 2025-03-17 09:55:31 +08:00
parent 8928bb4307
commit 10a5d3301e
3 changed files with 480 additions and 78 deletions

View File

@ -0,0 +1,402 @@
# Generated by Django 3.2.12 on 2025-03-17 01:55
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('wpm', '0099_auto_20250313_1633'),
]
operations = [
migrations.RemoveField(
model_name='mlogbdefect',
name='floor',
),
migrations.AddField(
model_name='mlogb',
name='count_json',
field=models.JSONField(blank=True, default=list, verbose_name='各物料数量'),
),
migrations.AlterField(
model_name='handover',
name='count',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='送料数'),
),
migrations.AlterField(
model_name='handoverb',
name='count',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='送料数'),
),
migrations.AlterField(
model_name='mlog',
name='count_break',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='加工碎料数'),
),
migrations.AlterField(
model_name='mlog',
name='count_break_t',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='检验碎料数'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_b',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name=''),
),
migrations.AlterField(
model_name='mlog',
name='count_n_bb',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='崩边'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_bhpcd',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='壁厚偏差大'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_bl',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='不亮'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_bp',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='爆皮'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_cs',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='挫伤'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_d',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name=''),
),
migrations.AlterField(
model_name='mlog',
name='count_n_dl',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='断裂'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_dxt',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='大小头'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_hd',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='厚度'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_hs',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='划伤'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_hw',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='横纹'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_js',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='结石'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_md',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='麻点'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_pb',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='偏壁'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_ps',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='破损'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_qp',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='气泡'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_qt',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='其他'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_qx',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='气线'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_sc',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='色差'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_sw',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='水雾'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_swen',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='水纹'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_thhs',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='退火后碎'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_tw',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='条纹'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_txd',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='同心度'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_tydd',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='椭圆度大'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_wj',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='外经'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_wm',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='雾面'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_wq',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='弯曲'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_xbb',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='小崩边'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_xh',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='线痕'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_xzp',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='箱中破'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_yd',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='圆度'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_yp',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='有皮'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_zdd',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='锥度大'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_zjd',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='直径大'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_zjx',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='直径小'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_zt',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='炸头'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_zw',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='炸纹'),
),
migrations.AlterField(
model_name='mlog',
name='count_n_zz',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='杂质'),
),
migrations.AlterField(
model_name='mlog',
name='count_notok',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='不合格数'),
),
migrations.AlterField(
model_name='mlog',
name='count_ok',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='合格数'),
),
migrations.AlterField(
model_name='mlog',
name='count_ok_full',
field=models.DecimalField(blank=True, decimal_places=1, max_digits=11, null=True, verbose_name='完全合格数'),
),
migrations.AlterField(
model_name='mlog',
name='count_pn_jgqbl',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='加工前不良'),
),
migrations.AlterField(
model_name='mlog',
name='count_real',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='实际生产数'),
),
migrations.AlterField(
model_name='mlog',
name='count_use',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='领用数'),
),
migrations.AlterField(
model_name='mlogb',
name='count_break',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='加工破碎数'),
),
migrations.AlterField(
model_name='mlogb',
name='count_break_t',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='检验碎料数'),
),
migrations.AlterField(
model_name='mlogb',
name='count_n_bb',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='崩边'),
),
migrations.AlterField(
model_name='mlogb',
name='count_n_hd',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='厚度'),
),
migrations.AlterField(
model_name='mlogb',
name='count_n_hs',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='划伤'),
),
migrations.AlterField(
model_name='mlogb',
name='count_n_md',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='麻点'),
),
migrations.AlterField(
model_name='mlogb',
name='count_n_ps',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='破损'),
),
migrations.AlterField(
model_name='mlogb',
name='count_n_qp',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='气泡'),
),
migrations.AlterField(
model_name='mlogb',
name='count_n_qt',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='其他'),
),
migrations.AlterField(
model_name='mlogb',
name='count_n_swen',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='水纹'),
),
migrations.AlterField(
model_name='mlogb',
name='count_n_txd',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='同心度'),
),
migrations.AlterField(
model_name='mlogb',
name='count_n_wj',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='外经'),
),
migrations.AlterField(
model_name='mlogb',
name='count_n_wm',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='雾面'),
),
migrations.AlterField(
model_name='mlogb',
name='count_n_xbb',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='小崩边'),
),
migrations.AlterField(
model_name='mlogb',
name='count_n_xh',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='线痕'),
),
migrations.AlterField(
model_name='mlogb',
name='count_n_yd',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='圆度'),
),
migrations.AlterField(
model_name='mlogb',
name='count_n_zt',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='炸头'),
),
migrations.AlterField(
model_name='mlogb',
name='count_notok',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='不合格数'),
),
migrations.AlterField(
model_name='mlogb',
name='count_ok',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='合格数量'),
),
migrations.AlterField(
model_name='mlogb',
name='count_ok_full',
field=models.DecimalField(blank=True, decimal_places=1, max_digits=11, null=True, verbose_name='完全合格数'),
),
migrations.AlterField(
model_name='mlogb',
name='count_pn_jgqbl',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='加工前不良'),
),
migrations.AlterField(
model_name='mlogb',
name='count_real',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='实际生产数'),
),
migrations.AlterField(
model_name='mlogb',
name='count_use',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='领用数量'),
),
migrations.AlterField(
model_name='mlogbdefect',
name='count',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='数量'),
),
migrations.AlterField(
model_name='wmaterial',
name='count',
field=models.DecimalField(decimal_places=1, default=0, max_digits=11, verbose_name='当前数量'),
),
migrations.AlterField(
model_name='wmaterial',
name='count_xtest',
field=models.DecimalField(blank=True, decimal_places=1, max_digits=11, null=True, verbose_name='已检数量'),
),
]

View File

@ -117,12 +117,12 @@ class WMaterial(CommonBDModel):
supplier = models.ForeignKey(Supplier, verbose_name='外协供应商', on_delete=models.SET_NULL, null=True, blank=True)
mgroup = models.ForeignKey(Mgroup, verbose_name='所在工段', on_delete=models.CASCADE, null=True, blank=True)
batch = models.TextField('批次号')
count = models.PositiveIntegerField('当前数量', default=0)
count = models.DecimalField('当前数量', default=0, max_digits=11, decimal_places=1)
count_eweight = models.FloatField('单数重量', default=0)
defect = models.ForeignKey('qm.defect', verbose_name='缺陷', on_delete=models.SET_NULL, null=True, blank=True)
notok_sign = models.CharField('不合格标记', max_length=10, null=True, blank=True)
material_origin = models.ForeignKey(Material, verbose_name='原始物料', on_delete=models.SET_NULL, null=True, blank=True, related_name='wm_mo')
count_xtest = models.PositiveIntegerField('已检数量', null=True, blank=True)
count_xtest = models.DecimalField('已检数量', null=True, blank=True, max_digits=11, decimal_places=1)
batch_ofrom = models.TextField('原料批次号', null=True, blank=True)
material_ofrom = models.ForeignKey(Material, verbose_name='原料物料', on_delete=models.SET_NULL, null=True, blank=True, related_name='wm_mofrom')
@ -202,57 +202,57 @@ class Mlog(CommonADModel):
shift = models.ForeignKey(
Shift, verbose_name='关联班次', on_delete=models.SET_NULL, null=True, blank=True)
batch = models.TextField('批次号', null=True, blank=True)
count_use = models.PositiveIntegerField('领用数', default=0)
count_real = models.PositiveIntegerField('实际生产数', default=0)
count_use = models.DecimalField('领用数', default=0, max_digits=11, decimal_places=1)
count_real = models.DecimalField('实际生产数', default=0, max_digits=11, decimal_places=1)
count_real_eweight = models.FloatField('单数重量', default=0)
count_break = models.PositiveIntegerField('加工碎料数', default=0)
count_break = models.DecimalField('加工碎料数', default=0, max_digits=11, decimal_places=1)
count_ok = models.PositiveIntegerField('合格数', default=0)
count_ok_full = models.PositiveIntegerField('完全合格数', null=True, blank=True)
count_notok = models.PositiveIntegerField('不合格数', default=0)
count_break_t = models.PositiveIntegerField('检验碎料数', default=0)
count_ok = models.DecimalField('合格数', default=0, max_digits=11, decimal_places=1)
count_ok_full = models.DecimalField('完全合格数', null=True, blank=True, max_digits=11, decimal_places=1)
count_notok = models.DecimalField('不合格数', default=0, max_digits=11, decimal_places=1)
count_break_t = models.DecimalField('检验碎料数', default=0, max_digits=11, decimal_places=1)
count_pn_jgqbl = models.PositiveIntegerField('加工前不良', default=0)
count_n_zw = models.PositiveIntegerField('炸纹', default=0)
count_n_tw = models.PositiveIntegerField('条纹', default=0)
count_n_qp = models.PositiveIntegerField('气泡', default=0)
count_n_wq = models.PositiveIntegerField('弯曲', default=0)
count_n_dl = models.PositiveIntegerField('断裂', default=0)
count_n_pb = models.PositiveIntegerField('偏壁', default=0)
count_n_dxt = models.PositiveIntegerField('大小头', default=0)
count_n_js = models.PositiveIntegerField('结石', default=0)
count_n_qx = models.PositiveIntegerField('气线', default=0)
count_n_hs = models.PositiveIntegerField('划伤', default=0)
count_n_cs = models.PositiveIntegerField('挫伤', default=0)
count_n_bl = models.PositiveIntegerField('不亮', default=0)
count_n_zz = models.PositiveIntegerField('杂质', default=0)
count_n_d = models.PositiveIntegerField('', default=0)
count_n_zdd = models.PositiveIntegerField('锥度大', default=0)
count_n_hw = models.PositiveIntegerField('横纹', default=0)
count_n_yp = models.PositiveIntegerField('有皮', default=0)
count_n_bp = models.PositiveIntegerField('爆皮', default=0)
count_n_sc = models.PositiveIntegerField('色差', default=0)
count_n_tydd = models.PositiveIntegerField('椭圆度大', default=0)
count_n_sw = models.PositiveIntegerField('水雾', default=0)
count_n_zjx = models.PositiveIntegerField('直径小', default=0)
count_n_zjd = models.PositiveIntegerField('直径大', default=0)
count_n_bhpcd = models.PositiveIntegerField('壁厚偏差大', default=0)
count_n_xzp = models.PositiveIntegerField('箱中破', default=0)
count_n_thhs = models.PositiveIntegerField('退火后碎', default=0)
count_n_swen = models.PositiveIntegerField('水纹', default=0)
count_n_bb = models.PositiveIntegerField('崩边', default=0)
count_n_xbb = models.PositiveIntegerField('小崩边', default=0)
count_n_wm = models.PositiveIntegerField('雾面', default=0)
count_n_md = models.PositiveIntegerField('麻点', default=0)
count_n_xh = models.PositiveIntegerField('线痕', default=0)
count_n_ps = models.PositiveIntegerField('破损', default=0)
count_n_wj = models.PositiveIntegerField('外经', default=0)
count_n_yd = models.PositiveIntegerField('圆度', default=0)
count_n_txd = models.PositiveIntegerField('同心度', default=0)
count_n_hd = models.PositiveIntegerField('厚度', default=0)
count_n_zt = models.PositiveIntegerField('炸头', default=0)
count_n_b = models.PositiveIntegerField('', default=0) # 光芯七车间
count_n_qt = models.PositiveIntegerField('其他', default=0)
count_pn_jgqbl = models.DecimalField('加工前不良', default=0, max_digits=11, decimal_places=1)
count_n_zw = models.DecimalField('炸纹', default=0, max_digits=11, decimal_places=1)
count_n_tw = models.DecimalField('条纹', default=0, max_digits=11, decimal_places=1)
count_n_qp = models.DecimalField('气泡', default=0, max_digits=11, decimal_places=1)
count_n_wq = models.DecimalField('弯曲', default=0, max_digits=11, decimal_places=1)
count_n_dl = models.DecimalField('断裂', default=0, max_digits=11, decimal_places=1)
count_n_pb = models.DecimalField('偏壁', default=0, max_digits=11, decimal_places=1)
count_n_dxt = models.DecimalField('大小头', default=0, max_digits=11, decimal_places=1)
count_n_js = models.DecimalField('结石', default=0, max_digits=11, decimal_places=1)
count_n_qx = models.DecimalField('气线', default=0, max_digits=11, decimal_places=1)
count_n_hs = models.DecimalField('划伤', default=0, max_digits=11, decimal_places=1)
count_n_cs = models.DecimalField('挫伤', default=0, max_digits=11, decimal_places=1)
count_n_bl = models.DecimalField('不亮', default=0, max_digits=11, decimal_places=1)
count_n_zz = models.DecimalField('杂质', default=0, max_digits=11, decimal_places=1)
count_n_d = models.DecimalField('', default=0, max_digits=11, decimal_places=1)
count_n_zdd = models.DecimalField('锥度大', default=0, max_digits=11, decimal_places=1)
count_n_hw = models.DecimalField('横纹', default=0, max_digits=11, decimal_places=1)
count_n_yp = models.DecimalField('有皮', default=0, max_digits=11, decimal_places=1)
count_n_bp = models.DecimalField('爆皮', default=0, max_digits=11, decimal_places=1)
count_n_sc = models.DecimalField('色差', default=0, max_digits=11, decimal_places=1)
count_n_tydd = models.DecimalField('椭圆度大', default=0, max_digits=11, decimal_places=1)
count_n_sw = models.DecimalField('水雾', default=0, max_digits=11, decimal_places=1)
count_n_zjx = models.DecimalField('直径小', default=0, max_digits=11, decimal_places=1)
count_n_zjd = models.DecimalField('直径大', default=0, max_digits=11, decimal_places=1)
count_n_bhpcd = models.DecimalField('壁厚偏差大', default=0, max_digits=11, decimal_places=1)
count_n_xzp = models.DecimalField('箱中破', default=0, max_digits=11, decimal_places=1)
count_n_thhs = models.DecimalField('退火后碎', default=0, max_digits=11, decimal_places=1)
count_n_swen = models.DecimalField('水纹', default=0, max_digits=11, decimal_places=1)
count_n_bb = models.DecimalField('崩边', default=0, max_digits=11, decimal_places=1)
count_n_xbb = models.DecimalField('小崩边', default=0, max_digits=11, decimal_places=1)
count_n_wm = models.DecimalField('雾面', default=0, max_digits=11, decimal_places=1)
count_n_md = models.DecimalField('麻点', default=0, max_digits=11, decimal_places=1)
count_n_xh = models.DecimalField('线痕', default=0, max_digits=11, decimal_places=1)
count_n_ps = models.DecimalField('破损', default=0, max_digits=11, decimal_places=1)
count_n_wj = models.DecimalField('外经', default=0, max_digits=11, decimal_places=1)
count_n_yd = models.DecimalField('圆度', default=0, max_digits=11, decimal_places=1)
count_n_txd = models.DecimalField('同心度', default=0, max_digits=11, decimal_places=1)
count_n_hd = models.DecimalField('厚度', default=0, max_digits=11, decimal_places=1)
count_n_zt = models.DecimalField('炸头', default=0, max_digits=11, decimal_places=1)
count_n_b = models.DecimalField('', default=0, max_digits=11, decimal_places=1) # 光芯七车间
count_n_qt = models.DecimalField('其他', default=0, max_digits=11, decimal_places=1)
handle_date = models.DateField('操作日期', null=True, blank=True)
handle_user = models.ForeignKey(
@ -341,33 +341,34 @@ class Mlogb(BaseModel):
material_ofrom = models.ForeignKey(Material, verbose_name='原料物料', on_delete=models.SET_NULL,
null=True, blank=True, related_name='mlogb_mofrom')
count_use = models.PositiveIntegerField('领用数量', default=0)
count_break = models.PositiveIntegerField('加工破碎数', default=0)
count_use = models.DecimalField('领用数量', default=0, max_digits=11, decimal_places=1)
count_break = models.DecimalField('加工破碎数', default=0, max_digits=11, decimal_places=1)
count_break_t = models.PositiveIntegerField('检验碎料数', default=0)
count_real = models.PositiveIntegerField('实际生产数', default=0)
count_ok = models.PositiveIntegerField('合格数量', default=0)
count_ok_full = models.PositiveIntegerField('完全合格数', null=True, blank=True)
count_notok = models.PositiveIntegerField('不合格数', default=0)
count_break_t = models.DecimalField('检验碎料数', default=0, max_digits=11, decimal_places=1)
count_real = models.DecimalField('实际生产数', default=0, max_digits=11, decimal_places=1)
count_ok = models.DecimalField('合格数量', default=0, max_digits=11, decimal_places=1)
count_ok_full = models.DecimalField('完全合格数', null=True, blank=True, max_digits=11, decimal_places=1)
count_notok = models.DecimalField('不合格数', default=0, max_digits=11, decimal_places=1)
count_pn_jgqbl = models.PositiveIntegerField('加工前不良', default=0)
count_pn_jgqbl = models.DecimalField('加工前不良', default=0, max_digits=11, decimal_places=1)
# 添加不合格字段后需要更改cal_mlog_count_from_mlogb
count_n_hs = models.PositiveIntegerField('划伤', default=0)
count_n_qp = models.PositiveIntegerField('气泡', default=0)
count_n_swen = models.PositiveIntegerField('水纹', default=0)
count_n_bb = models.PositiveIntegerField('崩边', default=0)
count_n_xbb = models.PositiveIntegerField('小崩边', default=0)
count_n_wm = models.PositiveIntegerField('雾面', default=0)
count_n_md = models.PositiveIntegerField('麻点', default=0)
count_n_xh = models.PositiveIntegerField('线痕', default=0)
count_n_ps = models.PositiveIntegerField('破损', default=0)
count_n_wj = models.PositiveIntegerField('外经', default=0)
count_n_yd = models.PositiveIntegerField('圆度', default=0)
count_n_txd = models.PositiveIntegerField('同心度', default=0)
count_n_hd = models.PositiveIntegerField('厚度', default=0)
count_n_zt = models.PositiveIntegerField('炸头', default=0)
count_n_qt = models.PositiveIntegerField('其他', default=0)
count_n_hs = models.DecimalField('划伤', default=0, max_digits=11, decimal_places=1)
count_n_qp = models.DecimalField('气泡', default=0, max_digits=11, decimal_places=1)
count_n_swen = models.DecimalField('水纹', default=0, max_digits=11, decimal_places=1)
count_n_bb = models.DecimalField('崩边', default=0, max_digits=11, decimal_places=1)
count_n_xbb = models.DecimalField('小崩边', default=0, max_digits=11, decimal_places=1)
count_n_wm = models.DecimalField('雾面', default=0, max_digits=11, decimal_places=1)
count_n_md = models.DecimalField('麻点', default=0, max_digits=11, decimal_places=1)
count_n_xh = models.DecimalField('线痕', default=0, max_digits=11, decimal_places=1)
count_n_ps = models.DecimalField('破损', default=0, max_digits=11, decimal_places=1)
count_n_wj = models.DecimalField('外经', default=0, max_digits=11, decimal_places=1)
count_n_yd = models.DecimalField('圆度', default=0, max_digits=11, decimal_places=1)
count_n_txd = models.DecimalField('同心度', default=0, max_digits=11, decimal_places=1)
count_n_hd = models.DecimalField('厚度', default=0, max_digits=11, decimal_places=1)
count_n_zt = models.DecimalField('炸头', default=0, max_digits=11, decimal_places=1)
count_n_qt = models.DecimalField('其他', default=0, max_digits=11, decimal_places=1)
count_notok_json = models.JSONField('不合格情况', default=list, blank=True)
count_json = models.JSONField('各物料数量', default=list, blank=True)
def get_tracking(self):
if self.material_in:
return "in", self.material_in.tracking
@ -412,8 +413,7 @@ class Mlogb(BaseModel):
class MlogbDefect(BaseModel):
mlogb = models.ForeignKey(Mlogb, verbose_name='生产记录', on_delete=models.CASCADE)
defect = models.ForeignKey("qm.Defect", verbose_name='缺陷', on_delete=models.CASCADE, null=True, blank=True)
floor = models.IntegerField("层数", null=True, blank=True)
count = models.PositiveIntegerField('数量', default=0)
count = models.DecimalField('数量', default=0, max_digits=11, decimal_places=1)
@classmethod
def get_defect_qs(cls, ftype="all"):
@ -499,7 +499,7 @@ class Handover(CommonADModel):
material = models.ForeignKey(
Material, verbose_name='物料', on_delete=models.CASCADE, related_name='h_ma')
material_changed = models.ForeignKey(Material, verbose_name='变更后物料', on_delete=models.CASCADE, null=True, blank=True, related_name='h_ma_c')
count = models.PositiveIntegerField('送料数', default=0)
count = models.DecimalField('送料数', default=0, max_digits=11, decimal_places=1)
count_eweight = models.FloatField('单数重量', default=0)
recive_dept = models.ForeignKey(
Dept, verbose_name='接收部门', on_delete=models.CASCADE, related_name='handover_recive_dept')
@ -531,7 +531,7 @@ class Handoverb(BaseModel):
null=True, blank=True, related_name='handoverb_wm')
wm_to = models.ForeignKey(WMaterial, verbose_name='所到车间库存', on_delete=models.SET_NULL,
null=True, blank=True, related_name='handoverb_wm_to')
count = models.PositiveIntegerField('送料数', default=0)
count = models.DecimalField('送料数', default=0, max_digits=11, decimal_places=1)
@property
def handoverbw(self):

View File

@ -208,7 +208,7 @@ class MlogbDefectSerializer(CustomModelSerializer):
defect_okcate = serializers.CharField(source="defect.okcate", read_only=True)
class Meta:
model = MlogbDefect
fields = ["id", "defect_name", "count", "mlogb", "defect", "floor", "defect_okcate"]
fields = ["id", "defect_name", "count", "mlogb", "defect", "defect_okcate"]
read_only_fields = EXCLUDE_FIELDS_BASE + ["mlogb"]
class MlogbSerializer(CustomModelSerializer):