Merge branch 'master' of https://e.coding.net/ctcdevteam/ehs/ehs_server
This commit is contained in:
commit
15d37604ea
|
@ -1,6 +1,7 @@
|
|||
from django_filters import rest_framework as filters
|
||||
from apps.wpm.models import SfLog, StLog, WMaterial, Mlog, Handover, Mgroup, Mlogb, Mtask
|
||||
|
||||
from apps.wpm.models import (SfLog, StLog, WMaterial, Mlog,
|
||||
Handover, Mgroup, Mlogb, Mtask, BatchSt)
|
||||
from django.db.models import Q
|
||||
|
||||
class SfLogFilter(filters.FilterSet):
|
||||
class Meta:
|
||||
|
@ -135,4 +136,23 @@ class MlogbFilter(filters.FilterSet):
|
|||
elif value == 'out':
|
||||
return queryset.filter(material_out__isnull=False)
|
||||
return queryset
|
||||
return queryset.none()
|
||||
return queryset.none()
|
||||
|
||||
|
||||
class BatchStFilter(filters.FilterSet):
|
||||
batch__startswith__in = filters.CharFilter(method='filter_batch')
|
||||
|
||||
class Meta:
|
||||
model = BatchSt
|
||||
fields = {
|
||||
"batch": ["exact", "contains", "startswith"],
|
||||
"last_time": ["exact", "gte", "lte"],
|
||||
"update_time": ["exact", "gte", "lte"]
|
||||
}
|
||||
|
||||
def filter_batch(self, queryset, name, value):
|
||||
v_list = value.split(',')
|
||||
query = Q()
|
||||
for value in v_list:
|
||||
query |= Q(batch__startswith=value)
|
||||
return queryset.filter(query)
|
|
@ -469,6 +469,9 @@ class MlogSerializer(CustomModelSerializer):
|
|||
material_out = attrs['material_out']
|
||||
if not (mgroup and material_out):
|
||||
raise ValidationError('缺少工段或产物!')
|
||||
handle_user = attrs.get('handle_user', None)
|
||||
if handle_user is None and hasattr(self, "request"):
|
||||
handle_user = self.request.user
|
||||
return attrs
|
||||
|
||||
|
||||
|
|
|
@ -68,9 +68,12 @@ def get_alldata_with_batch(batch: str):
|
|||
mlogs_glcx_qs = Mlog.objects.filter(submit_time__isnull=False, mgroup=mgroup_glcx, batch=batch)
|
||||
if mlogs_glcx_qs.exists():
|
||||
data["产品规格"] = []
|
||||
data["管料成型_备注"] = ""
|
||||
for item in mlogs_glcx_qs:
|
||||
last_time = item.update_time if item.update_time > last_time else last_time
|
||||
data["产品规格"].append(item.material_out) # 对象
|
||||
if item.note:
|
||||
data["管料成型_备注"] = ";".join([data["管料成型_备注"], item.note])
|
||||
for field in mlog_count_fields:
|
||||
if getattr(item, field) > 0 or field in ["count_real", "count_ok"]:
|
||||
if f'管料成型_{field}' not in data:
|
||||
|
@ -88,9 +91,12 @@ def get_alldata_with_batch(batch: str):
|
|||
data["七车间入库_日期"] = []
|
||||
data["七车间入库_车间执行人"] = []
|
||||
data["七车间入库_仓库执行人"] = []
|
||||
data["七车间入库_检验备注"] = ""
|
||||
for item in mioitem_qs:
|
||||
last_time = item.update_time if item.update_time > last_time else last_time
|
||||
data["七车间入库_日期"].append(item.mio.inout_date)
|
||||
if item.test_note:
|
||||
data["七车间入库_检验备注"] = ";".join([data["七车间入库_检验备注"], item.test_note])
|
||||
if item.mio.mio_user:
|
||||
data["七车间入库_车间执行人"].append(item.mio.mio_user)
|
||||
if item.mio.do_user:
|
||||
|
@ -116,7 +122,11 @@ def get_alldata_with_batch(batch: str):
|
|||
data["十车间入库_抽检人"] = []
|
||||
data["十车间入库_仓库执行人"] = []
|
||||
data["十车间入库_日期"] = []
|
||||
data["十车间入库_检验备注"] = ""
|
||||
for item in mioitem10_qs:
|
||||
last_time = item.update_time if item.update_time > last_time else last_time
|
||||
if item.test_note:
|
||||
data["十车间入库_检验备注"] = ";".join([data["十车间入库_检验备注"], item.test_note])
|
||||
if item.mio.do_user:
|
||||
data["十车间入库_仓库执行人"].append(item.mio.do_user)
|
||||
if item.test_user:
|
||||
|
@ -145,11 +155,17 @@ def get_alldata_with_batch(batch: str):
|
|||
if mlogs_glth_qs.exists():
|
||||
data["管料退火_日期"] = []
|
||||
data["管料退火_操作人"] = []
|
||||
data["管料退火_备注"] = ""
|
||||
data["产品规格"] = []
|
||||
for item in mlogs_glth_qs:
|
||||
data["产品规格"].append(item.material_out)
|
||||
last_time = item.update_time if item.update_time > last_time else last_time
|
||||
if item.note:
|
||||
data["管料退火_备注"] = ";".join([data["管料退火_备注"], item.note])
|
||||
if item.handle_date:
|
||||
data["管料退火_日期"].append(item.handle_date)
|
||||
if item.handle_user:
|
||||
data["管料退火_操作人"].append(item.mlog_user)
|
||||
data["管料退火_操作人"].append(item.handle_user)
|
||||
for field in mlog_count_fields:
|
||||
if getattr(item, field) > 0 or field in ["count", "count_notok"]:
|
||||
if f'管料退火_{field}' not in data:
|
||||
|
@ -160,6 +176,8 @@ def get_alldata_with_batch(batch: str):
|
|||
data["管料退火_日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["管料退火_日期"]])
|
||||
data["管料退火_操作人"] = list(set(data["管料退火_操作人"]))
|
||||
data["管料退火_操作人"] = ";".join([item.name for item in data["管料退火_操作人"]])
|
||||
data["产品规格"] = list(set(data["产品规格"]))
|
||||
data["产品规格"] = ";".join([item.specification for item in data["产品规格"]])
|
||||
|
||||
|
||||
# 六车间领料数据
|
||||
|
@ -170,7 +188,9 @@ def get_alldata_with_batch(batch: str):
|
|||
data["六车间领料_日期"] = []
|
||||
data["六车间领料_车间执行人"] = []
|
||||
data["六车间领料_仓库执行人"] = []
|
||||
data["产品规格"] = []
|
||||
for item in mioitem6_qs:
|
||||
data["产品规格"].append(item.material)
|
||||
last_time = item.update_time if item.update_time > last_time else last_time
|
||||
data["六车间领料_日期"].append(item.mio.inout_date)
|
||||
if item.mio.do_user:
|
||||
|
@ -189,6 +209,10 @@ def get_alldata_with_batch(batch: str):
|
|||
data["六车间领料_仓库执行人"] = ";".join([item.name for item in data["六车间领料_仓库执行人"]])
|
||||
data["六车间领料_车间执行人"] = list(set(data["六车间领料_车间执行人"]))
|
||||
data["六车间领料_车间执行人"] = ";".join([item.name for item in data["六车间领料_车间执行人"]])
|
||||
data["产品规格"] = list(set(data["产品规格"]))
|
||||
data["产品规格"] = ";".join([item.specification for item in data["产品规格"]])
|
||||
|
||||
# 六车间工段生产数据
|
||||
|
||||
# 六车间工段生产数据
|
||||
mgroup_list = ["平头", "粘铁头", "粗中细磨", "抛光", "开槽"]
|
||||
|
@ -199,7 +223,10 @@ def get_alldata_with_batch(batch: str):
|
|||
last_time = item.update_time if item.update_time > last_time else last_time
|
||||
data[f'六车间_{mgroup_name}_日期'] = []
|
||||
data[f'六车间_{mgroup_name}_操作人'] = []
|
||||
data[f'六车间_{mgroup_name}_备注'] = ""
|
||||
for item in mlogs_qs:
|
||||
if item.note:
|
||||
data[f'六车间_{mgroup_name}_备注'] = ";".join([data[f'六车间_{mgroup_name}_备注'], item.note])
|
||||
if item.handle_date:
|
||||
data[f'六车间_{mgroup_name}_日期'].append(item.handle_date)
|
||||
if item.handle_user:
|
||||
|
|
|
@ -14,7 +14,7 @@ from apps.mtm.models import Material, Process
|
|||
from apps.pm.models import Mtask
|
||||
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||
|
||||
from .filters import StLogFilter, SfLogFilter, WMaterialFilter, MlogFilter, HandoverFilter, MlogbFilter
|
||||
from .filters import StLogFilter, SfLogFilter, WMaterialFilter, MlogFilter, HandoverFilter, MlogbFilter, BatchStFilter
|
||||
from .models import SfLog, SfLogExp, StLog, WMaterial, Mlog, Handover, Mlogb, AttLog, OtherLog, Fmlog, BatchSt
|
||||
from .serializers import (SflogExpSerializer, SfLogSerializer, StLogSerializer, WMaterialSerializer, MlogRevertSerializer,
|
||||
MlogSerializer, MlogRelatedSerializer, DeptBatchSerializer, HandoverSerializer, HandoverUpdateSerializer,
|
||||
|
@ -523,8 +523,5 @@ class BatchStViewSet(ListModelMixin, CustomGenericViewSet):
|
|||
serializer_class = BatchStSerializer
|
||||
ordering_fields = ["batch", "last_time", "update_time"]
|
||||
ordering = ["batch"]
|
||||
filterset_fields = {
|
||||
"batch": ["exact", "contains", "startswith"],
|
||||
"last_time": ["exact", "gte", "lte"],
|
||||
"update_time": ["exact", "gte", "lte"]
|
||||
}
|
||||
filterset_class = BatchStFilter
|
||||
|
||||
|
|
Loading…
Reference in New Issue