This commit is contained in:
zty 2024-08-06 09:45:10 +08:00
commit f1a76cba74
9 changed files with 45 additions and 4 deletions

View File

@ -255,7 +255,7 @@ def cal_mpointstats(is_now=1, year=None, month=None, day=None, hour=None, m_code
# 先调整一下班时间,以防计算错误
# 为了保持一致使用统计的时间点
nowx = datetime.now()
nowx = timezone.now()
get_total_sec_now(now=nowx) # 再处理total_sec
cal_exp_duration_sec(now=nowx) # 先处理shut_sec

View File

@ -51,7 +51,7 @@ class RouteFilter(filters.FilterSet):
"material_out": ["exact", "in"],
"process": ["exact", "in"],
"is_autotask": ["exact"],
"routepack": ["exact"],
"routepack": ["exact", "isnull"],
"routepack__state": ["exact"],
"mgroup": ["exact", "in", "isnull"],
"mgroup__name": ["exact", "contains"],

View File

@ -0,0 +1,24 @@
# Generated by Django 3.2.12 on 2024-08-04 10:46
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('system', '0005_alter_permission_type'),
('opm', '0013_auto_20230605_1429'),
]
operations = [
migrations.AddField(
model_name='opl',
name='audit_imgs',
field=models.ManyToManyField(blank=True, related_name='opl_audit_imgs', to='system.File', verbose_name='作业审批照片'),
),
migrations.AddField(
model_name='opl',
name='work_imgs',
field=models.ManyToManyField(blank=True, related_name='opl_work_imgs', to='system.File', verbose_name='作业工作照片'),
),
]

View File

@ -105,6 +105,10 @@ class Opl(CommonBDModel):
workers = models.ManyToManyField('system.user', verbose_name='作业人员', through='opm.oplworker')
create_imgs = models.ManyToManyField('system.file', verbose_name='作业审批照片',
related_name='opl_create_imgs', blank=True)
audit_imgs = models.ManyToManyField('system.file', verbose_name='作业审批照片',
related_name='opl_audit_imgs', blank=True)
work_imgs = models.ManyToManyField('system.file', verbose_name='作业工作照片',
related_name='opl_work_imgs', blank=True)
close_imgs = models.ManyToManyField('system.file', verbose_name='作业关闭照片',
related_name='opl_close_imgs', blank=True)
close_note = models.PositiveSmallIntegerField('作业关闭情况',

View File

@ -252,6 +252,8 @@ class OplDetailSerializer(CustomModelSerializer):
measures_checked_ = serializers.SerializerMethodField()
close_dos_ = serializers.SerializerMethodField()
create_imgs_ = FileSerializer(source='create_imgs', many=True)
audit_imgs_ = FileSerializer(source='audit_imgs', many=True)
work_imgs_ = FileSerializer(source='work_imgs', many=True)
close_imgs_ = FileSerializer(source='close_imgs', many=True)
mtask_uid = serializers.SerializerMethodField()

View File

@ -179,4 +179,13 @@ def opl_monitor(opl: Opl, tv: str):
for i in vchannels:
Thread(target=snap_and_analyse, args=(i, algo_codes, opl), daemon=True).start()
time.sleep(10)
cache.delete(tkey)
cache.delete(tkey)
def check_opl_audit_imgs(ticket: Ticket, transition: Transition, new_ticket_data: dict):
audit_imgs = new_ticket_data.get('audit_imgs', [])
if audit_imgs:
opl = Opl.objects.get(ticket=ticket)
opl.audit_imgs = audit_imgs
opl.save()
else:
raise Exception('需提交审核照片')

View File

@ -82,6 +82,7 @@ class OplViewSet(CustomModelViewSet):
serializer_class = OplListSerializer
retrieve_serializer_class = OplDetailSerializer
select_related_fields = ['cate', 'operation', 'dept_do', 'charger', 'monitor', 'ticket']
prefetch_related_fields = ['close_imgs', 'audit_imgs', 'work_imgs', 'create_imgs']
filterset_fields = ['operation', 'cate']
@transaction.atomic

View File

@ -160,6 +160,7 @@ class SflogExpSerializer(CustomModelSerializer):
# happen_time = serializers.DateTimeField(required=True, label='发生时间')
# cate = serializers.CharField(required=True, label='原因类别')
sflog_ = SfLogSerializer(source='sflog', read_only=True)
stlog_ = StLogSerializer(source='stlog', read_only=True)
class Meta:
model = SfLogExp

View File

@ -99,7 +99,7 @@ class SfLogExpViewSet(ListModelMixin, UpdateModelMixin, CustomGenericViewSet):
perms_map = {'get': '*', 'put': 'sflogexp.update'}
queryset = SfLogExp.objects.all()
serializer_class = SflogExpSerializer
select_related_fields = ['sflog', 'sflog__mgroup', 'stlog', 'sflog__team', 'sflog__shift', 'sflog__leader']
select_related_fields = ['sflog', 'sflog__mgroup', 'stlog', 'sflog__team', 'sflog__shift', 'sflog__leader', 'stlog']
filterset_fields = ['sflog', 'stlog']