feat: 添加batchst路由
This commit is contained in:
parent
c3bd32ee68
commit
17697d6482
|
@ -5,7 +5,7 @@ from rest_framework.exceptions import ValidationError, ParseError
|
|||
from datetime import datetime
|
||||
|
||||
from .models import (SfLog, StLog, SfLogExp, WMaterial, Mlog,
|
||||
Handover, Handoverb, Mlogb, AttLog, OtherLog, Fmlog)
|
||||
Handover, Handoverb, Mlogb, AttLog, OtherLog, Fmlog, BatchSt)
|
||||
from apps.system.models import Dept, User
|
||||
from apps.system.serializers import UserSimpleSerializer
|
||||
from apps.pm.models import Mtask, Mtaskb
|
||||
|
@ -812,3 +812,9 @@ class FmlogUpdateSerializer(CustomModelSerializer):
|
|||
|
||||
class MlogTCreateSerializer(CustomModelSerializer):
|
||||
pass
|
||||
|
||||
|
||||
class BatchStSerializer(CustomModelSerializer):
|
||||
class Meta:
|
||||
model = BatchSt
|
||||
fields = "__all__"
|
|
@ -1,9 +1,18 @@
|
|||
from apps.wpm.models import Mlog
|
||||
from apps.mtm.models import Material, Mgroup
|
||||
from apps.wpm.models import Mlog, BatchSt
|
||||
from apps.mtm.models import Mgroup
|
||||
from apps.system.models import Dept
|
||||
from apps.inm.models import MIOItem
|
||||
from apps.qm.models import FtestWork
|
||||
|
||||
def get_alldata_with_batch_and_store(batch: str):
|
||||
"""
|
||||
获取某个批次某个仓库的整体生产数据并保存
|
||||
"""
|
||||
data = get_alldata_with_batch(batch)
|
||||
bobj, _ = BatchSt.objects.get_or_create(batch=batch)
|
||||
bobj.data = data
|
||||
bobj.save()
|
||||
|
||||
def get_alldata_with_batch(batch: str):
|
||||
"""
|
||||
获取某个批次的整体生产数据
|
||||
|
@ -23,7 +32,9 @@ def get_alldata_with_batch(batch: str):
|
|||
data["棒料成型-备注"] = ""
|
||||
for item in mlogs_blcx_qs:
|
||||
data["产品规格"].append(item.material_out) # 对象
|
||||
if item.handle_user:
|
||||
data["棒料成型-出料人"].append(item.handle_user) # 对象
|
||||
if item.handle_user_2:
|
||||
data["棒料成型-切料人"].append(item.handle_user_2) # 对象
|
||||
if item.note:
|
||||
data["棒料成型-备注"] = ";".join([data["棒料成型-备注"], item.note])
|
||||
|
@ -51,14 +62,16 @@ def get_alldata_with_batch(batch: str):
|
|||
data["7车间入库-仓库执行人"] = []
|
||||
for item in mioitem_qs:
|
||||
data["7车间入库-日期"].append(item.mio.inout_date)
|
||||
if item.mio.mio_user:
|
||||
data["7车间入库-车间执行人"].append(item.mio.mio_user)
|
||||
if item.mio.do_user:
|
||||
data["7车间入库-仓库执行人"].append(item.mio.do_user)
|
||||
for field in mioitem_count_fields:
|
||||
if getattr(item, field) > 0:
|
||||
if f'7车间入库-{field}' not in data:
|
||||
data[f'7车间入库-{field}'] = getattr(item, field)
|
||||
data[f'7车间入库-{field}'] = int(getattr(item, field))
|
||||
else:
|
||||
data[f'7车间入库-{field}'] += getattr(item, field)
|
||||
data[f'7车间入库-{field}'] += int(getattr(item, field))
|
||||
data["7车间入库-合格率"] = round((data["7车间入库-count"] - data["7车间入库-count_notok"]) * 100/ data["7车间入库-count"], 1)
|
||||
data["7车间入库-日期"] = list(set(data["7车间入库-日期"]))
|
||||
data["7车间入库-日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["7车间入库-日期"]])
|
||||
|
@ -78,9 +91,9 @@ def get_alldata_with_batch(batch: str):
|
|||
for field in mioitem_count_fields:
|
||||
if getattr(item, field) > 0:
|
||||
if f'6车间生产领料-{field}' not in data:
|
||||
data[f'6车间生产领料-{field}'] = getattr(item, field)
|
||||
data[f'6车间生产领料-{field}'] = int(getattr(item, field))
|
||||
else:
|
||||
data[f'6车间生产领料-{field}'] += getattr(item, field)
|
||||
data[f'6车间生产领料-{field}'] += int(getattr(item, field))
|
||||
data["6车间生产领料-日期"] = list(set(data["6车间生产领料-日期"]))
|
||||
data["6车间生产领料-日期"] = ";".join([item.strftime("%Y-%m-%d") for item in data["6车间生产领料-日期"]])
|
||||
|
||||
|
@ -93,7 +106,9 @@ def get_alldata_with_batch(batch: str):
|
|||
data[f'6车间-{mgroup_name}-日期'] = []
|
||||
data[f'6车间-{mgroup_name}-操作人'] = []
|
||||
for item in mlogs_qs:
|
||||
if item.handle_date:
|
||||
data[f'6车间-{mgroup_name}-日期'].append(item.handle_date)
|
||||
if item.handle_user:
|
||||
data[f'6车间-{mgroup_name}-操作人'].append(item.handle_user)
|
||||
for field in mlog_count_fields:
|
||||
if getattr(item, field) > 0:
|
||||
|
@ -131,7 +146,9 @@ def get_alldata_with_batch(batch: str):
|
|||
data["成品检验-日期"] = []
|
||||
data['成品检验-检验人'] = []
|
||||
for item in ftestwork_qs:
|
||||
if item.test_date:
|
||||
data["成品检验-日期"].append(item.test_date)
|
||||
if item.test_user:
|
||||
data['成品检验-检验人'].append(item.test_user)
|
||||
for field in ftestwork_count_fields:
|
||||
if field == 'count_notok_json':
|
||||
|
|
|
@ -4,7 +4,7 @@ from rest_framework.routers import DefaultRouter
|
|||
from apps.wpm.views import (SfLogViewSet, StLogViewSet, SfLogExpViewSet,
|
||||
WMaterialViewSet, MlogViewSet, HandoverViewSet,
|
||||
AttlogViewSet, OtherLogViewSet, MlogbViewSet, MlogbInViewSet,
|
||||
MlogbOutViewSet, FmlogViewSet)
|
||||
MlogbOutViewSet, FmlogViewSet, BatchStViewSet)
|
||||
from apps.wpm.datax import AnaViewSet
|
||||
|
||||
|
||||
|
@ -25,6 +25,7 @@ router.register('handover', HandoverViewSet, basename='handover')
|
|||
router.register('attlog', AttlogViewSet, basename='attlog')
|
||||
router.register('otherlog', OtherLogViewSet, basename='otherlog')
|
||||
router.register('ana', AnaViewSet, basename='ana')
|
||||
router.register('batchst', BatchStViewSet, basename='batchst')
|
||||
|
||||
urlpatterns = [
|
||||
path(API_BASE_URL, include(router.urls)),
|
||||
|
|
|
@ -13,16 +13,15 @@ from apps.system.models import User
|
|||
from apps.mtm.models import Material, Process
|
||||
from apps.pm.models import Mtask
|
||||
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||
from apps.utils.mixins import BulkCreateModelMixin
|
||||
|
||||
from .filters import StLogFilter, SfLogFilter, WMaterialFilter, MlogFilter, HandoverFilter, MlogbFilter
|
||||
from .models import SfLog, SfLogExp, StLog, WMaterial, Mlog, Handover, Mlogb, AttLog, OtherLog, Fmlog
|
||||
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,
|
||||
GenHandoverSerializer, GenHandoverWmSerializer, MlogAnaSerializer,
|
||||
AttLogSerializer, OtherLogSerializer, MlogInitSerializer, MlogChangeSerializer,
|
||||
MlogbDetailSerializer, MlogbInSerializer, MlogbInUpdateSerializer,
|
||||
MlogbOutUpdateSerializer, FmlogSerializer, FmlogUpdateSerializer)
|
||||
MlogbOutUpdateSerializer, FmlogSerializer, FmlogUpdateSerializer, BatchStSerializer)
|
||||
from .services import mlog_submit, update_mtask, handover_submit, mlog_revert, cal_material_count_from_mlog, cal_mtask_progress_from_mlog
|
||||
from apps.utils.thread import MyThread
|
||||
from apps.monitor.services import create_auditlog, delete_auditlog
|
||||
|
@ -511,3 +510,18 @@ class FmlogViewSet(CustomModelViewSet):
|
|||
if Mlog.objects.filter(fmlog=ins).exists():
|
||||
raise ParseError('因存在二级日志不可删除')
|
||||
return super().destroy(request, *args, **kwargs)
|
||||
|
||||
|
||||
class BatchStViewSet(ListModelMixin, CustomGenericViewSet):
|
||||
"""
|
||||
list: 批次统计数据
|
||||
|
||||
批次统计数据
|
||||
"""
|
||||
perms_map = {"get": "*"}
|
||||
queryset = BatchSt.objects.all()
|
||||
serializer_class = BatchStSerializer
|
||||
filterset_fields = {
|
||||
"batch": ["exact", "contains"],
|
||||
"update_time": ["exact", "gte", "lte"]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue