自动gitpull develop
This commit is contained in:
parent
28b44f92a8
commit
23b75df2d4
|
@ -80,7 +80,7 @@ class OperationMaterial(BaseModel):
|
||||||
type = models.IntegerField('类型', default=0, choices=type_choices)
|
type = models.IntegerField('类型', default=0, choices=type_choices)
|
||||||
operation = models.ForeignKey(Operation, verbose_name='关联的生产操作', on_delete=models.CASCADE)
|
operation = models.ForeignKey(Operation, verbose_name='关联的生产操作', on_delete=models.CASCADE)
|
||||||
wmaterial = models.ForeignKey(WMaterial, verbose_name='关联的车间物料', on_delete=models.CASCADE, null=True, blank=True)
|
wmaterial = models.ForeignKey(WMaterial, verbose_name='关联的车间物料', on_delete=models.CASCADE, null=True, blank=True)
|
||||||
material = models.ForeignKey(Material, verbose_name='可能产出的副产品', on_delete=models.CASCADE, null=True, blank=True)
|
material = models.ForeignKey(Material, verbose_name='可能产出的产品', on_delete=models.CASCADE, null=True, blank=True)
|
||||||
count = models.IntegerField('消耗或产出数量', validators=[MinValueValidator(0)])
|
count = models.IntegerField('消耗或产出数量', validators=[MinValueValidator(0)])
|
||||||
|
|
||||||
class OperationRecord(BaseModel):
|
class OperationRecord(BaseModel):
|
||||||
|
|
|
@ -245,6 +245,13 @@ class OperationRecordSerializer(serializers.ModelSerializer):
|
||||||
model = OperationRecord
|
model = OperationRecord
|
||||||
fields = ['form', 'record_data']
|
fields = ['form', 'record_data']
|
||||||
|
|
||||||
|
|
||||||
|
class OperationRecordSubmitSerializer(serializers.ModelSerializer):
|
||||||
|
record_data = OperationRecordItemSerializer(many=True)
|
||||||
|
class Meta:
|
||||||
|
model = OperationRecord
|
||||||
|
fields = ['record_data']
|
||||||
|
|
||||||
class OperationWproductListSerializer(serializers.ModelSerializer):
|
class OperationWproductListSerializer(serializers.ModelSerializer):
|
||||||
material_ = MaterialSimpleSerializer(source='material', read_only=True)
|
material_ = MaterialSimpleSerializer(source='material', read_only=True)
|
||||||
subproduction_plan_ = SubproductionPlanSimpleSerializer(source='subproduction_plan', read_only=True)
|
subproduction_plan_ = SubproductionPlanSimpleSerializer(source='subproduction_plan', read_only=True)
|
||||||
|
|
|
@ -17,7 +17,7 @@ from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin
|
||||||
from rest_framework.decorators import action
|
from rest_framework.decorators import action
|
||||||
from apps.wpm.models import OperationEquip, OperationWproduct, WMaterial, WProduct, Operation, OperationMaterial, OperationRecord, OperationRecordItem
|
from apps.wpm.models import OperationEquip, OperationWproduct, WMaterial, WProduct, Operation, OperationMaterial, OperationRecord, OperationRecordItem
|
||||||
|
|
||||||
from apps.wpm.serializers import OperationEquipListSerializer, OperationEquipUpdateSerializer, OperationRecordListSerializer, OperationUpdateSerializer, OperationWproductListSerializer, OperationCreateSerializer, OperationDetailSerializer, OperationListSerializer, PickHalfSerializer, PickSerializer, OperationInitSerializer, OperationSubmitSerializer, WMaterialListSerializer, WProductListSerializer, WplanPutInSerializer, WpmTestRecordCreateSerializer, WproductPutInSerializer
|
from apps.wpm.serializers import OperationEquipListSerializer, OperationEquipUpdateSerializer, OperationRecordListSerializer, OperationRecordSubmitSerializer, OperationUpdateSerializer, OperationWproductListSerializer, OperationCreateSerializer, OperationDetailSerializer, OperationListSerializer, PickHalfSerializer, PickSerializer, OperationInitSerializer, OperationSubmitSerializer, WMaterialListSerializer, WProductListSerializer, WplanPutInSerializer, WpmTestRecordCreateSerializer, WproductPutInSerializer
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from rest_framework import exceptions, serializers
|
from rest_framework import exceptions, serializers
|
||||||
|
@ -392,7 +392,26 @@ class OperationRecordViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet):
|
||||||
instance.delete()
|
instance.delete()
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
|
@action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=OperationRecordSubmitSerializer)
|
||||||
|
def submit(self, request, pk=None):
|
||||||
|
serializer = OperationRecordSubmitSerializer(data=request.data, context={'request':self.request})
|
||||||
|
serializer.is_valid(raise_exception=True)
|
||||||
|
vdata = serializer.data
|
||||||
|
opr = self.get_object()
|
||||||
|
wrds = []
|
||||||
|
for m in vdata['record_data']: # 保存记录详情
|
||||||
|
form_field = m['form_field']
|
||||||
|
m['field_name'] = form_field.field_name
|
||||||
|
m['field_key'] = form_field.field_key
|
||||||
|
m['field_type'] = form_field.field_type
|
||||||
|
m['field_value'] = m['field_value']
|
||||||
|
m['sort'] = form_field.sort
|
||||||
|
m['operation_record'] = opr
|
||||||
|
wrds.append(OperationRecordItem(**m))
|
||||||
|
OperationRecordItem.objects.bulk_create(wrds)
|
||||||
|
opr.is_filled = True
|
||||||
|
opr.save()
|
||||||
|
return Response()
|
||||||
|
|
||||||
|
|
||||||
class DoFormInit(CreateAPIView, GenericAPIView):
|
class DoFormInit(CreateAPIView, GenericAPIView):
|
||||||
|
|
|
@ -26,7 +26,7 @@ from rest_framework.documentation import include_docs_urls
|
||||||
from rest_framework_simplejwt.views import (TokenObtainPairView,
|
from rest_framework_simplejwt.views import (TokenObtainPairView,
|
||||||
TokenRefreshView)
|
TokenRefreshView)
|
||||||
from django.views.generic import TemplateView
|
from django.views.generic import TemplateView
|
||||||
from utils.view import GenSignature
|
from utils.view import GenSignature, UpdateDevelop
|
||||||
|
|
||||||
router = routers.DefaultRouter()
|
router = routers.DefaultRouter()
|
||||||
router.register('', FileViewSet, basename="file")
|
router.register('', FileViewSet, basename="file")
|
||||||
|
@ -72,6 +72,7 @@ urlpatterns = [
|
||||||
|
|
||||||
# 工具
|
# 工具
|
||||||
path('api/utils/signature/', GenSignature.as_view()),
|
path('api/utils/signature/', GenSignature.as_view()),
|
||||||
|
path('api/utils/develop/', UpdateDevelop.as_view()),
|
||||||
|
|
||||||
# 前端页面入口
|
# 前端页面入口
|
||||||
path('',TemplateView.as_view(template_name="index.html"))
|
path('',TemplateView.as_view(template_name="index.html"))
|
||||||
|
|
|
@ -49,3 +49,18 @@ class GenSignature(APIView):
|
||||||
image[i][j][0],image[i][j][1],image[i][j][2] = 0,0,0
|
image[i][j][0],image[i][j][1],image[i][j][2] = 0,0,0
|
||||||
cv2.imwrite(path,image)
|
cv2.imwrite(path,image)
|
||||||
return Response(request.data, status=status.HTTP_200_OK)
|
return Response(request.data, status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
|
||||||
|
class UpdateDevelop(APIView):
|
||||||
|
"""
|
||||||
|
更新开发服务器
|
||||||
|
"""
|
||||||
|
authentication_classes = ()
|
||||||
|
permission_classes = ()
|
||||||
|
|
||||||
|
def post(self, request, *args, **kwargs):
|
||||||
|
import os
|
||||||
|
# 更新后端
|
||||||
|
os.chdir('/home/hberp')
|
||||||
|
os.system('git pull https://caoqianming%40ctc.ac.cn:9093qqww@e.coding.net/ctcdevteam/hberp/hberp.git')
|
||||||
|
return Response()
|
||||||
|
|
Loading…
Reference in New Issue