Merge branch 'master' of https://e.coding.net/ctcdevteam/ehs/ehs_server
This commit is contained in:
		
						commit
						f1a76cba74
					
				|  | @ -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 | ||||
|      | ||||
|  |  | |||
|  | @ -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"], | ||||
|  |  | |||
|  | @ -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='作业工作照片'), | ||||
|         ), | ||||
|     ] | ||||
|  | @ -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('作业关闭情况', | ||||
|  |  | |||
|  | @ -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() | ||||
| 
 | ||||
|  |  | |||
|  | @ -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('需提交审核照片') | ||||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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'] | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue