Compare commits
No commits in common. "36df498e08889fd7f07317cabf31072bab42d275" and "f3e8e8d3c2faac79dc1ea3771ef60b3098223258" have entirely different histories.
36df498e08
...
f3e8e8d3c2
|
|
@ -1,126 +0,0 @@
|
||||||
# Generated by Django 3.2.12 on 2025-11-27 08:00
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('system', '0006_auto_20241213_1249'),
|
|
||||||
('srm', '0011_auto_20251125_1637'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='achieve',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='completion',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='finished',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='number',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='org',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='p_type',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='period',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='plat_amount',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='son_pro',
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='acceptance_status',
|
|
||||||
field=models.TextField(blank=True, null=True, verbose_name='项目验收情况'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='belong_dept',
|
|
||||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='platstanding_belong_dept', to='system.dept', verbose_name='所属部门'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='const',
|
|
||||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='建设期'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='mid_term_status',
|
|
||||||
field=models.TextField(blank=True, null=True, verbose_name='项目中期情况'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='milestone',
|
|
||||||
field=models.TextField(blank=True, null=True, verbose_name='里程碑节点'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='name',
|
|
||||||
field=models.CharField(blank=True, max_length=200, null=True, verbose_name='名称'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='project_funding',
|
|
||||||
field=models.DecimalField(blank=True, decimal_places=2, max_digits=15, null=True, verbose_name='项目资金(财政与自筹)'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='project_members',
|
|
||||||
field=models.TextField(blank=True, null=True, verbose_name='项目人员'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='project_source',
|
|
||||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='项目来源'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='project_type',
|
|
||||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='项目类型'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='red_head_doc_no',
|
|
||||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='红头发文号/公示页'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='responsible_person',
|
|
||||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='负责人'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='sci_tech_achievements',
|
|
||||||
field=models.TextField(blank=True, null=True, verbose_name='科技成果'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='support_period',
|
|
||||||
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='项目支持期'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='platstanding',
|
|
||||||
name='undertaking_unit',
|
|
||||||
field=models.CharField(blank=True, max_length=200, null=True, verbose_name='承担单位'),
|
|
||||||
),
|
|
||||||
]
|
|
||||||
|
|
@ -132,24 +132,53 @@ class Platform(CommonADModel):
|
||||||
ticket = models.ForeignKey('wf.ticket', verbose_name='关联工单',
|
ticket = models.ForeignKey('wf.ticket', verbose_name='关联工单',
|
||||||
on_delete=models.SET_NULL, related_name='plat_ticket', null=True, blank=True, db_constraint=False)
|
on_delete=models.SET_NULL, related_name='plat_ticket', null=True, blank=True, db_constraint=False)
|
||||||
|
|
||||||
class Platstanding(CommonBDModel):
|
class Platstanding(CommonADModel):
|
||||||
"""TN: 项目信息表
|
"""TN: 平台台账登记"""
|
||||||
|
number = models.CharField("发文号", max_length=50, null=True, blank=True)
|
||||||
"""
|
p_type = models.CharField("平台类型", max_length=50, null=True, blank=True)
|
||||||
red_head_doc_no = models.CharField("红头发文号/公示页", max_length=100, null=True, blank=True)
|
org = models.CharField("单位", max_length=100, null=True, blank=True)
|
||||||
name = models.CharField("名称", max_length=200, null=True, blank=True)
|
period = models.CharField("建设期", max_length=200, null=True, blank=True)
|
||||||
project_type = models.CharField("项目类型", max_length=100, null=True, blank=True)
|
platinfo = models.ForeignKey('Platform', verbose_name="平台信息", on_delete=models.CASCADE, related_name='platstanding',null=True, blank=True)
|
||||||
city_p = models.BooleanField("市级平台", default=False)
|
city_p = models.BooleanField("市级平台", default=False)
|
||||||
province_p = models.BooleanField("省级平台", default=False)
|
province_p = models.BooleanField("省级平台", default=False)
|
||||||
project_source = models.CharField("项目来源", max_length=100, null=True, blank=True)
|
plat_amount = models.DecimalField(max_digits=10,decimal_places=2, null=True,blank=True,verbose_name="平台资金(元)")
|
||||||
const = models.CharField("建设期", max_length=100, null=True, blank=True)
|
son_pro= models.CharField("子项目", max_length=200, null=True, blank=True)
|
||||||
platinfo = models.ForeignKey('Platform', verbose_name="平台信息", on_delete=models.CASCADE, related_name='platstanding',null=True, blank=True)
|
achieve = models.CharField("成果", max_length=200, null=True, blank=True)
|
||||||
project_funding = models.DecimalField("项目资金(财政与自筹)", max_digits=15, decimal_places=2, null=True, blank=True)
|
finished = models.CharField("完成情况", max_length=200, null=True, blank=True)
|
||||||
support_period = models.CharField("项目支持期", max_length=100, null=True, blank=True)
|
completion = models.CharField("建成绩效完成情况", max_length=200, 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)
|
# class ProjectApproval(CommonBDModel):
|
||||||
milestone = models.TextField("里程碑节点", null=True, blank=True)
|
# """TN: 立项审批表"""
|
||||||
mid_term_status = models.TextField("项目中期情况", null=True, blank=True)
|
# project_start_date = models.DateField("立项日期", null=True, blank=True)
|
||||||
acceptance_status = models.TextField("项目验收情况", null=True, blank=True)
|
# is_self_initiated = models.BooleanField("自立项目", default=False)
|
||||||
sci_tech_achievements = models.TextField("科技成果", null=True, blank=True)
|
# 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)
|
||||||
|
|
@ -61,3 +61,52 @@ class PlatstandingSerializer(CustomModelSerializer):
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
read_only_fields = EXCLUDE_FIELDS
|
read_only_fields = EXCLUDE_FIELDS
|
||||||
|
|
||||||
|
|
||||||
|
# class ProjectSerializer(serializers.ModelSerializer):
|
||||||
|
# class Meta:
|
||||||
|
# model = Project
|
||||||
|
# fields = ['id', 'name']
|
||||||
|
|
||||||
|
|
||||||
|
# class ProjectMemberSerializer(CustomModelSerializer):
|
||||||
|
# affiliated_platforms = serializers.PrimaryKeyRelatedField(
|
||||||
|
# many=True,
|
||||||
|
# queryset=Platform.objects.all(),
|
||||||
|
# write_only=True
|
||||||
|
# )
|
||||||
|
# affiliated_platforms_detail = PlatformSerializer(
|
||||||
|
# source='affiliated_platforms', many=True, read_only=True
|
||||||
|
# )
|
||||||
|
|
||||||
|
# affiliated_projects = serializers.PrimaryKeyRelatedField(
|
||||||
|
# many=True,
|
||||||
|
# queryset=Project.objects.all(),
|
||||||
|
# write_only=True
|
||||||
|
# )
|
||||||
|
# affiliated_projects_detail = ProjectSerializer(
|
||||||
|
# source='affiliated_projects', many=True, read_only=True
|
||||||
|
# )
|
||||||
|
# class Meta:
|
||||||
|
# model = PatentRecord
|
||||||
|
# fields = '__all__'
|
||||||
|
|
||||||
|
|
||||||
|
# class PaperRecordSerializer(CustomModelSerializer):
|
||||||
|
# class Meta:
|
||||||
|
# model = PaperRecord
|
||||||
|
# fields = '__all__'
|
||||||
|
# read_only_fields = EXCLUDE_FIELDS
|
||||||
|
|
||||||
|
|
||||||
|
# class ProjectApprovalSerializer(CustomModelSerializer):
|
||||||
|
# class Meta:
|
||||||
|
# model = ProjectApproval
|
||||||
|
# fields = '__all__'
|
||||||
|
# read_only_fields = EXCLUDE_FIELDS
|
||||||
|
|
||||||
|
|
||||||
|
# class ProjectInfoSerializer(CustomModelSerializer):
|
||||||
|
# class Meta:
|
||||||
|
# model = ProjectInfo
|
||||||
|
# fields = '__all__'
|
||||||
|
# read_only_fields = EXCLUDE_FIELDS
|
||||||
|
|
@ -187,13 +187,7 @@ class WfService(object):
|
||||||
dpt_attrs = state.filter_dept.split('.') # 通过反向查询得到可能有多层
|
dpt_attrs = state.filter_dept.split('.') # 通过反向查询得到可能有多层
|
||||||
expr = ticket
|
expr = ticket
|
||||||
for i in dpt_attrs:
|
for i in dpt_attrs:
|
||||||
try:
|
|
||||||
expr = getattr(expr, i)
|
expr = getattr(expr, i)
|
||||||
except AttributeError as e:
|
|
||||||
if "'RelatedManager' object has no attribute" in str(e):
|
|
||||||
expr = getattr(expr.first(), i)
|
|
||||||
else:
|
|
||||||
raise
|
|
||||||
dpts = Dept.objects.filter(id=expr.id)
|
dpts = Dept.objects.filter(id=expr.id)
|
||||||
user_queryset = user_queryset.filter(depts__in=dpts)
|
user_queryset = user_queryset.filter(depts__in=dpts)
|
||||||
# if state.filter_policy == 1:
|
# if state.filter_policy == 1:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue