Merge branch 'master' of http://gitea.xxhhcty.xyz:8080/zcdsj/factory
This commit is contained in:
commit
4ef834570e
|
|
@ -0,0 +1,126 @@
|
||||||
|
# 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,53 +132,24 @@ 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(CommonADModel):
|
class Platstanding(CommonBDModel):
|
||||||
"""TN: 平台台账登记"""
|
"""TN: 项目信息表
|
||||||
number = models.CharField("发文号", max_length=50, null=True, blank=True)
|
|
||||||
p_type = models.CharField("平台类型", max_length=50, null=True, blank=True)
|
"""
|
||||||
org = models.CharField("单位", max_length=100, null=True, blank=True)
|
red_head_doc_no = models.CharField("红头发文号/公示页", max_length=100, null=True, blank=True)
|
||||||
period = models.CharField("建设期", max_length=200, null=True, blank=True)
|
name = 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)
|
project_type = models.CharField("项目类型", max_length=100, 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)
|
||||||
plat_amount = models.DecimalField(max_digits=10,decimal_places=2, null=True,blank=True,verbose_name="平台资金(元)")
|
project_source = models.CharField("项目来源", max_length=100, null=True, blank=True)
|
||||||
son_pro= models.CharField("子项目", max_length=200, null=True, blank=True)
|
const = models.CharField("建设期", max_length=100, null=True, blank=True)
|
||||||
achieve = 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)
|
||||||
finished = models.CharField("完成情况", max_length=200, null=True, blank=True)
|
project_funding = models.DecimalField("项目资金(财政与自筹)", max_digits=15, decimal_places=2, null=True, blank=True)
|
||||||
completion = models.CharField("建成绩效完成情况", max_length=200, 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)
|
||||||
# class ProjectApproval(CommonBDModel):
|
project_members = models.TextField("项目人员", null=True, blank=True)
|
||||||
# """TN: 立项审批表"""
|
milestone = models.TextField("里程碑节点", null=True, blank=True)
|
||||||
# project_start_date = models.DateField("立项日期", null=True, blank=True)
|
mid_term_status = models.TextField("项目中期情况", null=True, blank=True)
|
||||||
# is_self_initiated = models.BooleanField("自立项目", default=False)
|
acceptance_status = models.TextField("项目验收情况", null=True, blank=True)
|
||||||
# is_city_level = models.BooleanField("市级项目", default=False)
|
sci_tech_achievements = models.TextField("科技成果", null=True, blank=True)
|
||||||
# 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,52 +61,3 @@ 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,7 +187,13 @@ 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