152 lines
9.1 KiB
Python
152 lines
9.1 KiB
Python
from django.db import models
|
||
from django.db import models, transaction
|
||
from apps.utils.models import CommonADModel, BaseModel, CommonBDModel
|
||
from apps.system.models import User
|
||
from django.core.validators import RegexValidator
|
||
from datetime import datetime
|
||
from rest_framework.exceptions import ParseError
|
||
|
||
# Create your models here.
|
||
class PatentInfo(CommonBDModel):
|
||
"""TN: 专利申密审批表单样式"""
|
||
PATENT_TYPE_CHOICES = (
|
||
('invention', '发明专利'),
|
||
('utility', '实用新型专利'),
|
||
('design', '外观设计专利'),
|
||
)
|
||
APPLY_AREAS = (
|
||
('Domestic', '国内申请'),
|
||
('Foreign', '国外申请'),
|
||
('PCT', 'PCT申请'),
|
||
)
|
||
|
||
name = models.CharField('拟申请专利名称', max_length=100)
|
||
author = models.CharField('发明人(设计人)', max_length=100)
|
||
type = models.CharField('专利类型', max_length=50, choices=PATENT_TYPE_CHOICES, default='invention')
|
||
is_public = models.BooleanField('是否公开', default=False)
|
||
area = models.CharField('拟申请地域', max_length=50, choices=APPLY_AREAS, default='Domestic')
|
||
other_area = models.CharField('其它申请地域', max_length=50, blank=True, null=True)
|
||
tech_status = models.JSONField('技术状态', default=list, blank=True, help_text='技术状态信息列表,每个条目包含name(名称)、status(状态)、file(文件)字段')
|
||
tech_file = models.JSONField('技术文件', default=list, help_text='技术文件信息列表,每个条目包含name(名称)page(页数)字段')
|
||
ticket = models.ForeignKey('wf.ticket', verbose_name='关联工单',
|
||
on_delete=models.SET_NULL, related_name='patentInfo_ticket', null=True, blank=True, db_constraint=False)
|
||
|
||
class Papersecret(CommonBDModel):
|
||
"""TN: 论文申密审批表单"""
|
||
paper_name = models.CharField('拟发表论文名称', max_length=100)
|
||
publication_name = models.CharField('拟投期刊名称', max_length=100)
|
||
author = models.CharField('作者', max_length=100)
|
||
paper_type = models.CharField('拟发表文章类型', max_length=100)
|
||
is_chinese_core = models.BooleanField('是否为中文核心', default=False)
|
||
is_sci = models.BooleanField('是否被SCI/EI收录', default=False)
|
||
tech_status = models.JSONField('技术状态', default=list, blank=True, help_text='技术状态信息列表,每个条目包含name(名称)、status(状态)、file(文件)字段')
|
||
tech_file = models.JSONField('技术文件', default=list, help_text='技术文件信息列表,每个条目包含name(名称)page(页数)字段')
|
||
ticket = models.ForeignKey('wf.ticket', verbose_name='关联工单',
|
||
on_delete=models.SET_NULL, related_name='paperse_ticket', null=True, blank=True, db_constraint=False)
|
||
|
||
class PatentRecord(CommonADModel):
|
||
"""TN: 专利台账登记"""
|
||
PATENT_TYPE_CHOICES = (
|
||
('invention', '发明专利'),
|
||
('utility', '实用新型专利'),
|
||
('design', '外观设计专利'),
|
||
)
|
||
volume_number = models.CharField(max_length=50, null=True, blank=True, verbose_name="卷号")
|
||
application_number = models.CharField(max_length=50, verbose_name="申请号(交局后补登)")
|
||
patent = models.ForeignKey('PatentInfo', verbose_name="专利名称", on_delete=models.CASCADE, related_name='patent_record')
|
||
pc_type = models.CharField('专利类型', max_length=50, choices=PATENT_TYPE_CHOICES, default='invention')
|
||
organization = models.CharField(max_length=100, verbose_name="单位")
|
||
inventors = models.CharField(max_length=255, verbose_name="发明人")
|
||
agent = models.CharField(max_length=255, null=True, blank=True, verbose_name="代理人")
|
||
affiliated_platforms = models.CharField(max_length=255, blank=True, verbose_name="归属平台")
|
||
affiliated_projects = models.CharField(max_length=255, blank=True, verbose_name="归属项目")
|
||
application_date = models.DateField(null=True, blank=True, verbose_name="申请日")
|
||
authorization_date = models.DateField(null=True, blank=True, verbose_name="授权日")
|
||
validity_years = models.IntegerField(null=True, blank=True, verbose_name="有效年限(年)")
|
||
annuity_paid = models.DecimalField(max_digits=10,decimal_places=2, null=True,blank=True,verbose_name="年费缴纳")
|
||
|
||
status = models.CharField(
|
||
max_length=20,
|
||
choices=[
|
||
("not_disclosed", "未公开"),
|
||
("under_examination", "实审中"),
|
||
("first_office_action", "一通"),
|
||
("second_office_action", "二通"),
|
||
("rejected", "驳回"),
|
||
("reexamination", "复审"),
|
||
("authorized", "授权")
|
||
],
|
||
verbose_name="状态"
|
||
)
|
||
award_info = models.TextField(null=True, blank=True, verbose_name="报奖情况")
|
||
bonus_amount = models.DecimalField(max_digits=10,decimal_places=2, null=True,blank=True,verbose_name="奖金金额(元)")
|
||
|
||
class PaperRecord(CommonADModel):
|
||
"""TN: 专利台账登记"""
|
||
PAPER_TYPE_CHOICES = (
|
||
('invention', '发明专利'),
|
||
('utility', '实用新型专利'),
|
||
('design', '外观设计专利'),
|
||
)
|
||
paper_number = models.CharField(max_length=50, null=True, blank=True, verbose_name="论文编号(投稿后补登)")
|
||
paper = models.ForeignKey('Papersecret', verbose_name="论文名称", on_delete=models.CASCADE, related_name='paper_record')
|
||
pa_type = models.CharField('论文类型', max_length=50, choices=PAPER_TYPE_CHOICES, default='invention')
|
||
organization = models.CharField(max_length=100, verbose_name="单位")
|
||
author = models.CharField(max_length=100, verbose_name="作者")
|
||
cor_author = models.CharField(max_length=100, verbose_name="通讯作者")
|
||
affiliated_platforms = models.CharField(max_length=255, blank=True, verbose_name="归属平台")
|
||
affiliated_projects = models.CharField(max_length=255, blank=True, verbose_name="归属项目")
|
||
accept_date = models.DateField(null=True, blank=True, verbose_name="接受日期")
|
||
public_date = models.DateField(null=True, blank=True, verbose_name="发表日期")
|
||
# validity_years = models.IntegerField(null=True, blank=True, verbose_name="有效年限(年)")
|
||
pub_paid = models.DecimalField(max_digits=10,decimal_places=2, null=True,blank=True,verbose_name="版面费缴纳")
|
||
|
||
status = models.CharField(
|
||
max_length=20,
|
||
choices=[
|
||
("审稿中", "审稿中"),
|
||
("一修", "一修"),
|
||
("二修", "二修"),
|
||
("接收", "接收"),
|
||
("发表", "发表"),
|
||
],
|
||
verbose_name="状态"
|
||
)
|
||
award_info = models.TextField(null=True, blank=True, verbose_name="报奖情况")
|
||
bonus_amount = models.DecimalField(max_digits=10,decimal_places=2, null=True,blank=True,verbose_name="奖金金额(元)")
|
||
|
||
|
||
# class ProjectApproval(CommonBDModel):
|
||
# """TN: 立项审批表"""
|
||
# project_start_date = models.DateField("立项日期", null=True, blank=True)
|
||
# is_self_initiated = models.BooleanField("自立项目", default=False)
|
||
# is_city_level = models.BooleanField("市级项目", default=False)
|
||
# is_province_level = models.BooleanField("省级项目", default=False)
|
||
# construction_period = models.CharField("建设期", max_length=100, null=True, blank=True)
|
||
# project_members = models.TextField("项目组员", null=True, blank=True)
|
||
# project_budget = models.DecimalField("项目预算(万元)", max_digits=12, decimal_places=2, null=True, blank=True)
|
||
# project_description = models.TextField("项目基本情况", null=True, blank=True)
|
||
# project_performance = models.TextField("目标绩效", null=True, blank=True)
|
||
|
||
|
||
# class ProjectInfo(CommonBDModel):
|
||
# """TN: 项目信息表
|
||
|
||
# """
|
||
# serial_number = models.CharField("序号", max_length=50, null=True, blank=True)
|
||
# red_head_doc_no = models.CharField("红头发文号/公示页", max_length=100, null=True, blank=True)
|
||
# name = models.CharField("名称", max_length=200, null=True, blank=True)
|
||
# project_type = models.CharField("项目类型", max_length=100, null=True, blank=True)
|
||
# platform = models.CharField("所属平台", max_length=100, null=True, blank=True)
|
||
# project_source = models.CharField("项目来源", max_length=100, null=True, blank=True)
|
||
# construction_period = models.CharField("建设期", max_length=100, null=True, blank=True)
|
||
# project_funding = models.DecimalField("项目资金(财政与自筹)", max_digits=15, decimal_places=2, null=True, blank=True)
|
||
# support_period = models.CharField("项目支持期", max_length=100, null=True, blank=True)
|
||
# undertaking_unit = models.CharField("承担单位", max_length=200, null=True, blank=True)
|
||
# responsible_person = models.CharField("负责人", max_length=50, null=True, blank=True)
|
||
|
||
# project_members = models.TextField("项目人员", null=True, blank=True)
|
||
# milestone = models.TextField("里程碑节点", null=True, blank=True)
|
||
# mid_term_status = models.TextField("项目中期情况", null=True, blank=True)
|
||
# acceptance_status = models.TextField("项目验收情况", null=True, blank=True)
|
||
# sci_tech_achievements = models.TextField("科技成果", null=True, blank=True) |