|
|
@@ -104,6 +104,13 @@ def hide_con(placeholders, mark_value, hide_rows):
|
|
104
|
104
|
else:
|
|
105
|
105
|
placeholders[mark_value] = f"0[{hide_rows}]"
|
|
106
|
106
|
|
|
|
107
|
+def clear_values(n, m):
|
|
|
108
|
+ placeholders = {}
|
|
|
109
|
+ for i in range(1, n + 1):
|
|
|
110
|
+ for j in range(1, m + 1):
|
|
|
111
|
+ placeholders[f'v{i}_{j}'] = " "
|
|
|
112
|
+ return placeholders
|
|
|
113
|
+
|
|
107
|
114
|
def generate_hardness_out_values(lot_no):
|
|
108
|
115
|
"""
|
|
109
|
116
|
Generate a dictionary of placeholder values for a given lot_no.
|
|
|
@@ -112,10 +119,15 @@ def generate_hardness_out_values(lot_no):
|
|
112
|
119
|
:return: A dictionary with placeholders (e.g., v1_1, v1_2, ...) as keys and their respective values.
|
|
113
|
120
|
"""
|
|
114
|
121
|
# Query the Data model for records matching the given lot_no
|
|
115
|
|
- records = Data.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
|
122
|
+ # records = Data.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
|
123
|
+ data_h1 = list(Data.objects.filter(lot_no=lot_no).order_by('row_no'))
|
|
|
124
|
+ data_h2 = list(DataRl.objects.filter(lot_no=lot_no).order_by('row_no'))
|
|
|
125
|
+
|
|
|
126
|
+ records = list(chain(data_h1, data_h2))
|
|
|
127
|
+
|
|
116
|
128
|
print(f"records {lot_no} = {records.values()}")
|
|
117
|
129
|
# Initialize an empty dictionary to store placeholder values
|
|
118
|
|
- placeholders = {}
|
|
|
130
|
+ placeholders = clear_values(2,5)
|
|
119
|
131
|
|
|
120
|
132
|
# Iterate over the records to populate placeholder values
|
|
121
|
133
|
for record_idx, record in enumerate(records, start=1):
|
|
|
@@ -129,7 +141,12 @@ def generate_hardness_out_values(lot_no):
|
|
129
|
141
|
|
|
130
|
142
|
def generate_hardness_out_in_values(lot_no):
|
|
131
|
143
|
# Fetch records from the Data model
|
|
132
|
|
- records = Data.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
|
144
|
+ # records = Data.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
|
145
|
+ data_h1 = list(Data.objects.filter(lot_no=lot_no).order_by('row_no'))
|
|
|
146
|
+ data_h2 = list(DataRl.objects.filter(lot_no=lot_no).order_by('row_no'))
|
|
|
147
|
+
|
|
|
148
|
+ records = list(chain(data_h1, data_h2))
|
|
|
149
|
+
|
|
133
|
150
|
out_data = []
|
|
134
|
151
|
in_data = []
|
|
135
|
152
|
|
|
|
@@ -141,7 +158,8 @@ def generate_hardness_out_in_values(lot_no):
|
|
141
|
158
|
in_data.append(record)
|
|
142
|
159
|
|
|
143
|
160
|
# Prepare placeholders
|
|
144
|
|
- placeholders = {}
|
|
|
161
|
+ # placeholders = {}
|
|
|
162
|
+ placeholders = clear_values(4,5)
|
|
145
|
163
|
for idx, record in enumerate(out_data, start=1):
|
|
146
|
164
|
placeholders[f'v{idx}_1'] = record.p1
|
|
147
|
165
|
placeholders[f'v{idx}_2'] = record.p2
|
|
|
@@ -165,13 +183,31 @@ def generate_hardness_out_in_values(lot_no):
|
|
165
|
183
|
|
|
166
|
184
|
return placeholders
|
|
167
|
185
|
|
|
168
|
|
-def clear_values(n, m):
|
|
169
|
|
- placeholders = {}
|
|
170
|
|
- for i in range(1, n + 1):
|
|
171
|
|
- for j in range(1, m + 1):
|
|
172
|
|
- placeholders[f'v{i}_{j}'] = " "
|
|
|
186
|
+def generate_hardness_both_size_values(lot_no, ms):
|
|
|
187
|
+ # Fetch records from the Data model
|
|
|
188
|
+ # records = Data.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
|
189
|
+ data_h1 = list(Data.objects.filter(lot_no=lot_no).order_by('row_no', 'sub_order'))
|
|
|
190
|
+ data_h2 = list(DataRl.objects.filter(lot_no=lot_no).order_by('row_no', 'sub_order'))
|
|
|
191
|
+
|
|
|
192
|
+ records = list(chain(data_h1, data_h2))
|
|
|
193
|
+
|
|
|
194
|
+ out_data = []
|
|
|
195
|
+ in_data = []
|
|
|
196
|
+
|
|
|
197
|
+ placeholders = clear_values(20,5)
|
|
|
198
|
+ # Separate OUT and IN data
|
|
|
199
|
+ for idx, record in enumerate(records, start=0):
|
|
|
200
|
+ if record.sub_order == 1:
|
|
|
201
|
+ for i,v in enumerate(["p1", "p2", "p3", "avg", "rgrade"],start=1):
|
|
|
202
|
+ placeholders[f"v{idx*2+1}_{i}"] = getattr(record,v)
|
|
|
203
|
+ if record.sub_order == 2:
|
|
|
204
|
+ for i,v in enumerate(["p1", "p2", "p3", "avg", "rgrade"],start=1):
|
|
|
205
|
+ placeholders[f"v{idx*2+2}_{i}"] = getattr(record,v)
|
|
|
206
|
+ # Prepare placeholders
|
|
|
207
|
+ # placeholders = {}
|
|
173
|
208
|
return placeholders
|
|
174
|
209
|
|
|
|
210
|
+
|
|
175
|
211
|
# # Example usage:
|
|
176
|
212
|
# placeholders_dict = clear_values(6, 3)
|
|
177
|
213
|
# print(placeholders_dict)
|
|
|
@@ -185,7 +221,7 @@ def generate_dimension_values(lot_no):
|
|
185
|
221
|
manual_size_records = Manualsize.objects.filter(lotno=lot_no)
|
|
186
|
222
|
|
|
187
|
223
|
# Fetch actual and judgement values from DataMs ordered by row_no (limit to 2 rows)
|
|
188
|
|
- data_ms_records = DataMs.objects.filter(lot_no=lot_no).order_by('row_no')[:2]
|
|
|
224
|
+ data_ms_records = DataMs.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
189
|
225
|
|
|
190
|
226
|
# Prepare placeholders
|
|
191
|
227
|
|
|
|
@@ -229,7 +265,7 @@ def generate_dimension_values(lot_no):
|
|
229
|
265
|
placeholders[f'v6_2'] = r.hsize
|
|
230
|
266
|
placeholders[f'v6_3'] = r.hsizeok
|
|
231
|
267
|
|
|
232
|
|
- hide_con(placeholders, "v4_2", "24:28")
|
|
|
268
|
+ hide_con(placeholders, "v4_1", "24:28")
|
|
233
|
269
|
return placeholders
|
|
234
|
270
|
|
|
235
|
271
|
def is_ok(instance):
|
|
|
@@ -252,7 +288,7 @@ def generate_dimension_app_values(lot_no):
|
|
252
|
288
|
manual_size_records = Manualsize.objects.filter(lotno=lot_no)
|
|
253
|
289
|
|
|
254
|
290
|
# Fetch actual and judgement values from DataMs ordered by row_no (limit to 2 rows)
|
|
255
|
|
- data_ms_records = DataMs.objects.filter(lot_no=lot_no).order_by('row_no')[:2]
|
|
|
291
|
+ data_ms_records = DataMs.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
256
|
292
|
|
|
257
|
293
|
# Prepare placeholders
|
|
258
|
294
|
|
|
|
@@ -313,6 +349,99 @@ def generate_dimension_app_values(lot_no):
|
|
313
|
349
|
hide_con(placeholders, "v5_1", "26:32")
|
|
314
|
350
|
return placeholders
|
|
315
|
351
|
|
|
|
352
|
+def generate_dimension_bal_weight_values(lot_no, ms):
|
|
|
353
|
+ """
|
|
|
354
|
+ Fetch dimension records from manualSize and DataMs models
|
|
|
355
|
+ and generate placeholder values for Standard, Actual, and Judgement.
|
|
|
356
|
+ Supports two row_no entries per lot.
|
|
|
357
|
+ """
|
|
|
358
|
+ # Fetch standard values from manualSize (limit to 2 rows)
|
|
|
359
|
+ manual_size_records = Manualsize.objects.filter(lotno=lot_no)
|
|
|
360
|
+
|
|
|
361
|
+ # Fetch actual and judgement values from DataMs ordered by row_no (limit to 2 rows)
|
|
|
362
|
+ data_ms_records = DataMs.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
|
363
|
+
|
|
|
364
|
+ data_wb = DataWb.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
|
365
|
+
|
|
|
366
|
+ data_h1 = list(Data.objects.filter(lot_no=lot_no).order_by('row_no'))
|
|
|
367
|
+ data_h2 = list(DataRl.objects.filter(lot_no=lot_no).order_by('row_no'))
|
|
|
368
|
+
|
|
|
369
|
+ data_ho = list(chain(data_h1, data_h2))
|
|
|
370
|
+ # Prepare placeholders
|
|
|
371
|
+
|
|
|
372
|
+ # placeholders = {}
|
|
|
373
|
+ placeholders = clear_values(10,3)
|
|
|
374
|
+ # for i in range(1,7):
|
|
|
375
|
+ # for j in range(1,4):
|
|
|
376
|
+ # placeholders[f'v{i}_{j}'] = 0
|
|
|
377
|
+
|
|
|
378
|
+ pprint(placeholders)
|
|
|
379
|
+ pprint(manual_size_records)
|
|
|
380
|
+
|
|
|
381
|
+ if ms:
|
|
|
382
|
+ w = ms.PRO6
|
|
|
383
|
+ placeholders['v4_1'] = placeholders['v9_1'] = w
|
|
|
384
|
+
|
|
|
385
|
+ for m in manual_size_records:
|
|
|
386
|
+ if m.size_name == "D":
|
|
|
387
|
+ placeholders['v1_1'] = placeholders['v6_1'] = f'D{m.std} +{m.tolup} {m.tolun}'
|
|
|
388
|
+ if m.size_name == "T":
|
|
|
389
|
+ placeholders['v2_1'] = placeholders['v7_1'] = f'T{m.std} +{m.tolup} {m.tolun}'
|
|
|
390
|
+ if m.size_name == "H":
|
|
|
391
|
+ placeholders['v3_1'] = placeholders['v8_1'] = f'H{m.std} +{m.tolup} {m.tolun}'
|
|
|
392
|
+
|
|
|
393
|
+
|
|
|
394
|
+
|
|
|
395
|
+ # Ensure that we map each manualSize entry to a corresponding DataMs entry
|
|
|
396
|
+ for r in data_ms_records:
|
|
|
397
|
+ if r.row_no == 1:
|
|
|
398
|
+ placeholders[f'v1_2'] = r.dsize
|
|
|
399
|
+ placeholders[f'v1_3'] = r.dsizeok
|
|
|
400
|
+
|
|
|
401
|
+ placeholders[f'v2_2'] = r.tsize
|
|
|
402
|
+ placeholders[f'v2_3'] = r.tsizeok
|
|
|
403
|
+
|
|
|
404
|
+ placeholders[f'v3_2'] = r.hsize
|
|
|
405
|
+ placeholders[f'v3_3'] = r.hsizeok
|
|
|
406
|
+
|
|
|
407
|
+ # if is_ok(r):
|
|
|
408
|
+ # placeholders[f'v4_1'] = 'OK'
|
|
|
409
|
+ # placeholders[f'v4_2'] = 'OK'
|
|
|
410
|
+ # else:
|
|
|
411
|
+ # placeholders[f'v4_1'] = 'NG'
|
|
|
412
|
+ # placeholders[f'v4_2'] = 'OK'
|
|
|
413
|
+
|
|
|
414
|
+ if r.row_no == 2:
|
|
|
415
|
+ placeholders[f'v6_2'] = r.dsize
|
|
|
416
|
+ placeholders[f'v6_3'] = r.dsizeok
|
|
|
417
|
+
|
|
|
418
|
+ placeholders[f'v7_2'] = r.tsize
|
|
|
419
|
+ placeholders[f'v7_3'] = r.tsizeok
|
|
|
420
|
+
|
|
|
421
|
+ placeholders[f'v8_2'] = r.hsize
|
|
|
422
|
+ placeholders[f'v8_3'] = r.hsizeok
|
|
|
423
|
+
|
|
|
424
|
+ # if is_ok(r):
|
|
|
425
|
+ # placeholders[f'v8_1'] = 'OK'
|
|
|
426
|
+ # placeholders[f'v8_2'] = 'OK'
|
|
|
427
|
+ # else:
|
|
|
428
|
+ # placeholders[f'v8_1'] = 'NG'
|
|
|
429
|
+ # placeholders[f'v8_2'] = 'NG'
|
|
|
430
|
+
|
|
|
431
|
+ for r in data_wb:
|
|
|
432
|
+ if r.row_no == 1:
|
|
|
433
|
+ placeholders["v4_2"] = r.result
|
|
|
434
|
+ placeholders["v4_3"] = r.judgement
|
|
|
435
|
+ placeholders["v5_2"] = r.weight
|
|
|
436
|
+ placeholders["v5_3"] = r.judgement
|
|
|
437
|
+ if r.row_no == 2:
|
|
|
438
|
+ placeholders["v9_2"] = r.result
|
|
|
439
|
+ placeholders["v9_3"] = r.judgement
|
|
|
440
|
+ placeholders["v10_2"] = r.weight
|
|
|
441
|
+ placeholders["v10_3"] = r.judgement
|
|
|
442
|
+ # hide_con(placeholders, "v5_1", "26:32")
|
|
|
443
|
+ return placeholders
|
|
|
444
|
+
|
|
316
|
445
|
def generate_dim_bal_app_hard_values(lot_no, first_result):
|
|
317
|
446
|
"""
|
|
318
|
447
|
Fetch dimension records from manualSize and DataMs models
|
|
|
@@ -323,11 +452,11 @@ def generate_dim_bal_app_hard_values(lot_no, first_result):
|
|
323
|
452
|
manual_size_records = Manualsize.objects.filter(lotno=lot_no)
|
|
324
|
453
|
|
|
325
|
454
|
# Fetch actual and judgement values from DataMs ordered by row_no (limit to 2 rows)
|
|
326
|
|
- data_ms_records = DataMs.objects.filter(lot_no=lot_no).order_by('row_no')[:2]
|
|
327
|
|
- data_wb = DataWb.objects.filter(lot_no=lot_no).order_by('row_no')[:2]
|
|
|
455
|
+ data_ms_records = DataMs.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
|
456
|
+ data_wb = DataWb.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
328
|
457
|
|
|
329
|
|
- data_h1 = list(Data.objects.filter(lot_no=lot_no).order_by('row_no')[:2])
|
|
330
|
|
- data_h2 = list(DataRl.objects.filter(lot_no=lot_no).order_by('row_no')[:2])
|
|
|
458
|
+ data_h1 = list(Data.objects.filter(lot_no=lot_no).order_by('row_no'))
|
|
|
459
|
+ data_h2 = list(DataRl.objects.filter(lot_no=lot_no).order_by('row_no'))
|
|
331
|
460
|
|
|
332
|
461
|
data_ho = list(chain(data_h1, data_h2))
|
|
333
|
462
|
|
|
|
@@ -430,6 +559,136 @@ def generate_dim_bal_app_hard_values(lot_no, first_result):
|
|
430
|
559
|
# hide_con(placeholders, "v5_1", "26:32")
|
|
431
|
560
|
return placeholders
|
|
432
|
561
|
|
|
|
562
|
+def generate_dim_bal_app_rot_hard_values(lot_no, first_result):
|
|
|
563
|
+ """
|
|
|
564
|
+ Fetch dimension records from manualSize and DataMs models
|
|
|
565
|
+ and generate placeholder values for Standard, Actual, and Judgement.
|
|
|
566
|
+ Supports two row_no entries per lot.
|
|
|
567
|
+ """
|
|
|
568
|
+ # Fetch standard values from manualSize (limit to 2 rows)
|
|
|
569
|
+ manual_size_records = Manualsize.objects.filter(lotno=lot_no)
|
|
|
570
|
+
|
|
|
571
|
+ # Fetch actual and judgement values from DataMs ordered by row_no (limit to 2 rows)
|
|
|
572
|
+ data_ms_records = DataMs.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
|
573
|
+ data_wb = DataWb.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
|
574
|
+
|
|
|
575
|
+ data_h1 = list(Data.objects.filter(lot_no=lot_no).order_by('row_no'))
|
|
|
576
|
+ data_h2 = list(DataRl.objects.filter(lot_no=lot_no).order_by('row_no'))
|
|
|
577
|
+
|
|
|
578
|
+ data_ho = list(chain(data_h1, data_h2))
|
|
|
579
|
+
|
|
|
580
|
+
|
|
|
581
|
+ rotates = RotateData.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
|
582
|
+
|
|
|
583
|
+ if first_result:
|
|
|
584
|
+ out_limit = f"Out 外 ({first_result.MI18} - {first_result.MI19})"
|
|
|
585
|
+ in_limit = f"In 内 ({first_result.MI22} - {first_result.MI23})"
|
|
|
586
|
+ mid_limit = f"Middle 中 -"
|
|
|
587
|
+ else:
|
|
|
588
|
+ out_limit = f"Out 外"
|
|
|
589
|
+ in_limit = f"In 内"
|
|
|
590
|
+ mid_limit = f"Middle 中"
|
|
|
591
|
+
|
|
|
592
|
+
|
|
|
593
|
+
|
|
|
594
|
+ # Prepare placeholders
|
|
|
595
|
+
|
|
|
596
|
+ # placeholders = {}
|
|
|
597
|
+ placeholders = clear_values(18,5)
|
|
|
598
|
+ # for i in range(1,7):
|
|
|
599
|
+ # for j in range(1,4):
|
|
|
600
|
+ # placeholders[f'v{i}_{j}'] = 0
|
|
|
601
|
+ placeholders['v6_0'] = placeholders['v14_0'] = out_limit
|
|
|
602
|
+ placeholders['v7_0'] = placeholders['v15_0'] = mid_limit
|
|
|
603
|
+ placeholders['v18_0'] = placeholders['v16_0'] = in_limit
|
|
|
604
|
+
|
|
|
605
|
+ pprint(placeholders)
|
|
|
606
|
+ pprint(manual_size_records)
|
|
|
607
|
+ if first_result:
|
|
|
608
|
+ w = first_result.PRO6
|
|
|
609
|
+ placeholders['v4_1'] = placeholders['v13_1'] = w
|
|
|
610
|
+
|
|
|
611
|
+ for m in manual_size_records:
|
|
|
612
|
+ if m.size_name == "D":
|
|
|
613
|
+ placeholders['v1_1'] = placeholders['v10_1'] = f'D{m.std} +{m.tolup} {m.tolun}'
|
|
|
614
|
+ if m.size_name == "T":
|
|
|
615
|
+ placeholders['v2_1'] = placeholders['v11_1'] = f'T{m.std} +{m.tolup} {m.tolun}'
|
|
|
616
|
+ if m.size_name == "H":
|
|
|
617
|
+ placeholders['v3_1'] = placeholders['v12_1'] = f'H{m.std} +{m.tolup} {m.tolun}'
|
|
|
618
|
+
|
|
|
619
|
+
|
|
|
620
|
+
|
|
|
621
|
+ # Ensure that we map each manualSize entry to a corresponding DataMs entry
|
|
|
622
|
+ for r in data_ms_records:
|
|
|
623
|
+ if r.row_no == 1:
|
|
|
624
|
+ placeholders[f'v1_2'] = r.dsize
|
|
|
625
|
+ placeholders[f'v1_3'] = r.dsizeok
|
|
|
626
|
+
|
|
|
627
|
+ placeholders[f'v2_2'] = r.tsize
|
|
|
628
|
+ placeholders[f'v2_3'] = r.tsizeok
|
|
|
629
|
+
|
|
|
630
|
+ placeholders[f'v3_2'] = r.hsize
|
|
|
631
|
+ placeholders[f'v3_3'] = r.hsizeok
|
|
|
632
|
+
|
|
|
633
|
+ # if is_ok(r):
|
|
|
634
|
+ # placeholders[f'v4_1'] = 'OK'
|
|
|
635
|
+ # placeholders[f'v4_2'] = 'OK'
|
|
|
636
|
+ # else:
|
|
|
637
|
+ # placeholders[f'v4_1'] = 'NG'
|
|
|
638
|
+ # placeholders[f'v4_2'] = 'OK'
|
|
|
639
|
+
|
|
|
640
|
+ if r.row_no == 2:
|
|
|
641
|
+ placeholders[f'v10_2'] = r.dsize
|
|
|
642
|
+ placeholders[f'v10_3'] = r.dsizeok
|
|
|
643
|
+
|
|
|
644
|
+ placeholders[f'v11_2'] = r.tsize
|
|
|
645
|
+ placeholders[f'v11_3'] = r.tsizeok
|
|
|
646
|
+
|
|
|
647
|
+ placeholders[f'v12_2'] = r.hsize
|
|
|
648
|
+ placeholders[f'v12_3'] = r.hsizeok
|
|
|
649
|
+
|
|
|
650
|
+ # if is_ok(r):
|
|
|
651
|
+ # placeholders[f'v8_1'] = 'OK'
|
|
|
652
|
+ # placeholders[f'v8_2'] = 'OK'
|
|
|
653
|
+ # else:
|
|
|
654
|
+ # placeholders[f'v8_1'] = 'NG'
|
|
|
655
|
+ # placeholders[f'v8_2'] = 'NG'
|
|
|
656
|
+
|
|
|
657
|
+ for r in data_wb:
|
|
|
658
|
+ if r.row_no == 1:
|
|
|
659
|
+ placeholders["v4_2"] = r.weight
|
|
|
660
|
+ placeholders["v4_3"] = r.judgement
|
|
|
661
|
+ if r.row_no == 2:
|
|
|
662
|
+ placeholders["v13_2"] = r.weight
|
|
|
663
|
+ placeholders["v13_3"] = r.judgement
|
|
|
664
|
+
|
|
|
665
|
+ for r in data_ho:
|
|
|
666
|
+ if r.row_no == 1:
|
|
|
667
|
+ rmap = {'OUT': 7, 'MID': 8, 'IN': 9}
|
|
|
668
|
+ for index, v in enumerate(["p1", "p2", "p3", "avg", "rgrade"], start=1):
|
|
|
669
|
+ idx = rmap.get(r.r_type, None)
|
|
|
670
|
+ if idx:
|
|
|
671
|
+ placeholders[f'v{idx}_{index}'] = getattr(r, v)
|
|
|
672
|
+ if r.row_no == 2:
|
|
|
673
|
+ rmap = {'OUT': 16, 'MID': 17, 'IN': 18}
|
|
|
674
|
+ for index, v in enumerate(["p1", "p2", "p3", "avg", "rgrade"], start=1):
|
|
|
675
|
+ idx = rmap.get(r.r_type, None)
|
|
|
676
|
+ if idx:
|
|
|
677
|
+ placeholders[f'v{idx}_{index}'] = getattr(r, v)
|
|
|
678
|
+
|
|
|
679
|
+ for r in rotates:
|
|
|
680
|
+ if r.row_no == 1:
|
|
|
681
|
+ placeholders["v6_1"] = r.speed_spec
|
|
|
682
|
+ placeholders["v6_2"] = r.speed_test
|
|
|
683
|
+ placeholders["v6_3"] = r.speedok
|
|
|
684
|
+ if r.row_no == 2:
|
|
|
685
|
+ placeholders["v15_1"] = r.speed_spec
|
|
|
686
|
+ placeholders["v15_2"] = r.speed_test
|
|
|
687
|
+ placeholders["v15_3"] = r.speedok
|
|
|
688
|
+
|
|
|
689
|
+ # hide_con(placeholders, "v5_1", "26:32")
|
|
|
690
|
+ return placeholders
|
|
|
691
|
+
|
|
433
|
692
|
def generate_centering_values(lot_no):
|
|
434
|
693
|
"""
|
|
435
|
694
|
Fetch dimension records from manualSize and DataMs models
|
|
|
@@ -440,7 +699,7 @@ def generate_centering_values(lot_no):
|
|
440
|
699
|
manual_size_records = Manualsize.objects.filter(lotno=lot_no)
|
|
441
|
700
|
|
|
442
|
701
|
# Fetch actual and judgement values from DataMs ordered by row_no (limit to 2 rows)
|
|
443
|
|
- data_ms_records = DataMs.objects.filter(lot_no=lot_no).order_by('row_no')[:2]
|
|
|
702
|
+ data_ms_records = DataMs.objects.filter(lot_no=lot_no).order_by('row_no')
|
|
444
|
703
|
|
|
445
|
704
|
# Prepare placeholders
|
|
446
|
705
|
|
|
|
@@ -537,18 +796,22 @@ def create_coi_file(lot_no, sheets, user, md):
|
|
537
|
796
|
sheet_data[sheet_name] = generate_hardness_out_values(lot_no)
|
|
538
|
797
|
case 'hardness_out_in':
|
|
539
|
798
|
sheet_data[sheet_name] = generate_hardness_out_in_values(lot_no)
|
|
|
799
|
+ case 'hardness_both_size':
|
|
|
800
|
+ sheet_data[sheet_name] = generate_hardness_both_size_values(lot_no, first_result)
|
|
540
|
801
|
case 'dimension':
|
|
541
|
802
|
sheet_data[sheet_name] = generate_dimension_values(lot_no)
|
|
542
|
803
|
case 'dimension_app':
|
|
543
|
804
|
sheet_data[sheet_name] = generate_dimension_app_values(lot_no)
|
|
544
|
|
- case 'centering':
|
|
545
|
|
- sheet_data[sheet_name] = generate_centering_values(lot_no)
|
|
|
805
|
+ case 'dimension_bal_weight':
|
|
|
806
|
+ sheet_data[sheet_name] = generate_dimension_bal_weight_values(lot_no, first_result)
|
|
546
|
807
|
case 'centering':
|
|
547
|
808
|
sheet_data[sheet_name] = generate_centering_values(lot_no)
|
|
548
|
809
|
case 'thickness_8_point':
|
|
549
|
810
|
sheet_data[sheet_name] = generate_t8_values(lot_no)
|
|
550
|
811
|
case 'dim_bal_app_hard':
|
|
551
|
812
|
sheet_data[sheet_name] = generate_dim_bal_app_hard_values(lot_no, first_result)
|
|
|
813
|
+ case 'dim_bal_app_rot_hard':
|
|
|
814
|
+ sheet_data[sheet_name] = generate_dim_bal_app_rot_hard_values(lot_no, first_result)
|
|
552
|
815
|
|
|
553
|
816
|
converted_data = convert_sheet_data(sheet_data)
|
|
554
|
817
|
|