feat: 增加mtaskb

This commit is contained in:
caoqianming 2024-09-03 16:41:51 +08:00
parent bc9a098cc8
commit 9fee0b52d5
5 changed files with 68 additions and 5 deletions

View File

@ -0,0 +1,32 @@
# Generated by Django 3.2.12 on 2024-09-03 08:38
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('pm', '0019_auto_20240703_1618'),
]
operations = [
migrations.CreateModel(
name='Mtaskb',
fields=[
('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')),
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
('count', models.PositiveIntegerField(default=0, verbose_name='任务数')),
('handle_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='mtaskb_handle_user', to=settings.AUTH_USER_MODEL, verbose_name='操作人')),
('mtask', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='b_mtask', to='pm.mtask', verbose_name='关联任务')),
],
options={
'abstract': False,
},
),
]

View File

@ -1,5 +1,5 @@
from django.db import models from django.db import models
from apps.utils.models import CommonADModel, CommonBDModel from apps.utils.models import CommonADModel, CommonBDModel, BaseModel
from apps.mtm.models import Material, Mgroup, RoutePack, Route from apps.mtm.models import Material, Mgroup, RoutePack, Route
# Create your models here. # Create your models here.
@ -111,3 +111,10 @@ class Mtask(CommonADModel):
def mlogs(self): def mlogs(self):
from apps.wpm.models import Mlog from apps.wpm.models import Mlog
return Mlog.objects.filter(mtask=self) return Mlog.objects.filter(mtask=self)
class Mtaskb(BaseModel):
mtask = models.ForeignKey(Mtask, verbose_name='关联任务', on_delete=models.CASCADE, related_name='b_mtask')
handle_user = models.ForeignKey(
'system.user', verbose_name='操作人', on_delete=models.CASCADE, related_name='mtaskb_handle_user')
count = models.PositiveIntegerField('任务数', default=0)

View File

@ -3,11 +3,12 @@ from rest_framework.exceptions import ValidationError, ParseError
import math import math
from apps.mtm.serializers import MaterialSimpleSerializer from apps.mtm.serializers import MaterialSimpleSerializer
from apps.pm.models import Mtask, Utask, SCHEDULE_TYPE from apps.pm.models import Mtask, Utask, SCHEDULE_TYPE, Mtaskb
from apps.sam.models import OrderItem from apps.sam.models import OrderItem
from apps.utils.serializers import CustomModelSerializer from apps.utils.serializers import CustomModelSerializer
from apps.system.models import Dept from apps.system.models import Dept
from apps.wpm.models import Mlog from apps.wpm.models import Mlog
from apps.utils.constants import EXCLUDE_FIELDS_BASE
class UtaskSerializer(CustomModelSerializer): class UtaskSerializer(CustomModelSerializer):
@ -110,3 +111,16 @@ class MtaskAddInfoSerializer(CustomModelSerializer):
class Meta: class Meta:
model = Mtask model = Mtask
fields = ['peifen_kg'] fields = ['peifen_kg']
class MtaskbSerializer(CustomModelSerializer):
handle_user_name = serializers.StringRelatedField(
source='handle_user.name', read_only=True)
class Meta:
model = Mtaskb
fields = '__all__'
read_only_fields = EXCLUDE_FIELDS_BASE
class MtaskbUpdateSerializer(CustomModelSerializer):
class Meta:
model = Mtaskb
fields = ['id', 'count']

View File

@ -1,12 +1,13 @@
from django.urls import path, include from django.urls import path, include
from rest_framework.routers import DefaultRouter from rest_framework.routers import DefaultRouter
from apps.pm.views import (MtaskViewSet, UtaskViewSet) from apps.pm.views import (MtaskViewSet, UtaskViewSet, MtaskbViewSet)
API_BASE_URL = 'api/pm/' API_BASE_URL = 'api/pm/'
HTML_BASE_URL = 'pm/' HTML_BASE_URL = 'pm/'
router = DefaultRouter() router = DefaultRouter()
router.register('mtask', MtaskViewSet, basename='mtask') router.register('mtask', MtaskViewSet, basename='mtask')
router.register('mtaskb', MtaskbViewSet, basename='mtaskb')
router.register('utask', UtaskViewSet, basename='utask') router.register('utask', UtaskViewSet, basename='utask')
urlpatterns = [ urlpatterns = [
path(API_BASE_URL, include(router.urls)), path(API_BASE_URL, include(router.urls)),

View File

@ -8,9 +8,10 @@ from apps.utils.serializers import PkSerializer
from apps.utils.viewsets import CustomModelViewSet from apps.utils.viewsets import CustomModelViewSet
from .filters import MtaskFilter, UtaskFilter from .filters import MtaskFilter, UtaskFilter
from .models import Mtask, Utask from .models import Mtask, Utask, Mtaskb
from .serializers import (MtaskSerializer, SchedueSerializer, UtaskSerializer, from .serializers import (MtaskSerializer, SchedueSerializer, UtaskSerializer,
MtaskDaySerializer, MtaskAddInfoSerializer, SchedueMtasksSerializer) MtaskDaySerializer, MtaskAddInfoSerializer,
SchedueMtasksSerializer, MtaskbSerializer, MtaskbUpdateSerializer)
from .services import PmService from .services import PmService
from django.utils import timezone from django.utils import timezone
@ -204,3 +205,11 @@ class MtaskViewSet(CustomModelViewSet):
sr.is_valid(raise_exception=True) sr.is_valid(raise_exception=True)
sr.save() sr.save()
return Response() return Response()
class MtaskbViewSet(CustomModelViewSet):
queryset = Mtaskb.objects.all()
serializer_class = MtaskbSerializer
update_serializer_class = MtaskbUpdateSerializer
filterset_fields = {"mtask": ["exact"], "handle_user": ["exact"]}
ordering = ['id']