Merge branch 'master' of https://e.coding.net/ctcdevteam/cma_search
This commit is contained in:
commit
4d1eabcd23
|
@ -3,6 +3,7 @@ from rest_framework import serializers
|
|||
from .models import *
|
||||
from apps.system.serializers import OrganizationSerializer,FileListSerializer,UserSimpleSerializer,OrganizationSimpleSerializer, FileSimpleSerializer
|
||||
from rest_framework.exceptions import ParseError
|
||||
import datetime
|
||||
|
||||
|
||||
class ContentSerializer(serializers.ModelSerializer):
|
||||
|
@ -161,14 +162,39 @@ class PgoalDeptSerializer(serializers.ModelSerializer):
|
|||
attrs['year'] = task2do.task2.year
|
||||
attrs['belong_dept'] = task2do.belong_dept
|
||||
return attrs
|
||||
|
||||
class DateField(serializers.Field):
|
||||
def to_internal_value(self, value):
|
||||
if isinstance(value, datetime.datetime):
|
||||
return value
|
||||
elif isinstance(value, datetime.date):
|
||||
return value
|
||||
try:
|
||||
date_obj = datetime.datetime.strptime(value, '%Y-%m-%d %H:%M:%S').date()
|
||||
except ValueError:
|
||||
try:
|
||||
date_obj = datetime.datetime.strptime(value, '%Y-%m-%d').date()
|
||||
except ValueError:
|
||||
raise serializers.ValidationError("日期格式错误")
|
||||
return date_obj
|
||||
|
||||
def to_representation(self, value):
|
||||
if isinstance(value, datetime.date):
|
||||
value = value.strftime('%Y-%m-%d')
|
||||
return super().to_representation(value)
|
||||
|
||||
class RcSerializer(ValidateMixin, serializers.ModelSerializer):
|
||||
|
||||
# date_issue = DateField(required=False, allow_null=True)
|
||||
# date_accept = DateField(required=False, allow_null=True)
|
||||
# date_expect = DateField(required=False, allow_null=True)
|
||||
class Meta(BaseMeta):
|
||||
model = Rc
|
||||
|
||||
|
||||
class ComplaintSerializer(ValidateMixin, serializers.ModelSerializer):
|
||||
|
||||
# date_occurrence = DateField()
|
||||
# date_feedback = DateField()
|
||||
class Meta(BaseMeta):
|
||||
model = Complaint
|
||||
|
||||
|
@ -183,7 +209,7 @@ class RiskSerializer(ValidateMixin, serializers.ModelSerializer):
|
|||
model = Risk
|
||||
|
||||
class OinspectSerializer(ValidateMixin, serializers.ModelSerializer):
|
||||
|
||||
# date_inspect = DateField()
|
||||
class Meta(BaseMeta):
|
||||
model = Oinspect
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ from rest_framework.response import Response
|
|||
from rest_framework.viewsets import GenericViewSet, ModelViewSet
|
||||
from utils.pagination import PageOrNot
|
||||
from openpyxl import load_workbook
|
||||
import datetime
|
||||
|
||||
from apps.system.mixins import CreateUpdateCustomMixin
|
||||
from apps.system.models import Organization
|
||||
|
@ -601,6 +602,21 @@ class PgoalDeptViewSet(Domixin, CreateUpdateCustomMixin, ModelViewSet):
|
|||
self.countup_task2do(instance.task2do)
|
||||
|
||||
class ImpMixin:
|
||||
def format_date(self, ind, val):
|
||||
new_val = val
|
||||
if isinstance(val, datetime.datetime):
|
||||
new_val = val.date()
|
||||
elif isinstance(val, datetime.date):
|
||||
new_val = val
|
||||
elif isinstance(val, str):
|
||||
try:
|
||||
new_val = datetime.datetime.strptime(val, '%Y-%m-%d').date()
|
||||
except ValueError:
|
||||
raise ParseError(f'第{ind}行, 日期时间格式错误')
|
||||
else:
|
||||
raise ParseError(f'第{ind}行, 日期时间格式错误')
|
||||
return new_val
|
||||
|
||||
def get_enum(self, val, atuple, ind):
|
||||
for i in atuple:
|
||||
if i[1] == val:
|
||||
|
@ -659,12 +675,12 @@ class RcViewSet(ImpMixin, Domixin, CreateUpdateCustomMixin, ModelViewSet):
|
|||
data['number'] = sheet['b'+str(i)].value
|
||||
data['number_correct'] = sheet['c'+str(i)].value
|
||||
data['reason_error'] = sheet['d'+str(i)].value
|
||||
data['date_issue'] = sheet['e'+str(i)].value
|
||||
data['date_issue'] = self.format_date(i, sheet['e'+str(i)].value)
|
||||
else:
|
||||
data['number'] = sheet['b'+str(i)].value
|
||||
data['date_accept'] = sheet['c'+str(i)].value
|
||||
data['date_expect'] = sheet['d'+str(i)].value
|
||||
data['date_issue'] = sheet['e'+str(i)].value
|
||||
data['date_accept'] = self.format_date(i, sheet['c'+str(i)].value)
|
||||
data['date_expect'] = self.format_date(i, sheet['d'+str(i)].value)
|
||||
data['date_issue'] = self.format_date(i, sheet['e'+str(i)].value)
|
||||
data['remark'] = sheet['f'+str(i)].value
|
||||
return data
|
||||
|
||||
|
@ -700,9 +716,9 @@ class ComplaintViewSet(ImpMixin, Domixin, CreateUpdateCustomMixin, ModelViewSet)
|
|||
|
||||
def make_data(self, data, sheet, i, etype):
|
||||
data['complainant'] = sheet['b'+str(i)].value
|
||||
data['date_occurrence'] = sheet['c'+str(i)].value
|
||||
data['date_occurrence'] = self.format_date(i, sheet['c'+str(i)].value)
|
||||
data['content'] = sheet['d'+str(i)].value
|
||||
data['date_feedback'] = sheet['e'+str(i)].value
|
||||
data['date_feedback'] = self.format_date(i, sheet['e'+str(i)].value)
|
||||
data['is_satisfied'] = True if sheet['f'+str(i)].value == '是' else False
|
||||
return data
|
||||
|
||||
|
@ -780,7 +796,7 @@ class OinspectViewSet(ImpMixin, Domixin, CreateUpdateCustomMixin, ModelViewSet):
|
|||
def make_data(self, data, sheet, i, etype):
|
||||
data['cate'] = self.get_enum(sheet['b'+str(i)].value, Oinspect.oinspect_cate_choices, i)
|
||||
data['checker'] = sheet['c'+str(i)].value
|
||||
data['date_inspect'] = sheet['d'+str(i)].value
|
||||
data['date_inspect'] = self.format_date(i, sheet['d'+str(i)].value)
|
||||
data['result'] = sheet['e'+str(i)].value
|
||||
return data
|
||||
|
||||
|
|
Loading…
Reference in New Issue