opm 路由
This commit is contained in:
parent
3830a1b000
commit
72637e749d
|
@ -1,3 +1,9 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from apps.am.models import Area
|
||||
|
||||
# Register your models here.
|
||||
|
||||
@admin.register(Area)
|
||||
class AreaAdmin(admin.ModelAdmin):
|
||||
date_hierarchy = 'create_time'
|
|
@ -35,6 +35,9 @@ class Area(CommonBModel):
|
|||
third_info = models.JSONField('三方信息', default=dict,
|
||||
null=False, blank=True)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.name
|
||||
|
||||
|
||||
class Access(CommonADModel):
|
||||
"""
|
||||
|
|
|
@ -0,0 +1,221 @@
|
|||
# Generated by Django 3.2.12 on 2022-06-21 00:56
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('hrm', '0002_auto_20220617_1124'),
|
||||
('am', '0001_initial'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('system', '0001_initial'),
|
||||
('wf', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Operation',
|
||||
fields=[
|
||||
('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('number', models.CharField(blank=True, max_length=20, null=True, verbose_name='作业编号')),
|
||||
('name', models.CharField(max_length=200, verbose_name='作业简述')),
|
||||
('place', models.TextField(blank=True, null=True, verbose_name='具体地点')),
|
||||
('start_time', models.DateTimeField(verbose_name='作业开始时间')),
|
||||
('end_time', models.DateTimeField(verbose_name='作业结束时间')),
|
||||
('state_work', models.CharField(help_text='运行/停机/检修', max_length=20, verbose_name='生产状态')),
|
||||
('area', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='am.area', verbose_name='作业区域')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='operation_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('coordinator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='业务部门协调员')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='operation_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('dept_bus', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='op_dept_bus', to='system.dept', verbose_name='业务部门')),
|
||||
('dept_ter', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='op_dept_ter', to='system.dept', verbose_name='属地部门')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='operation_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Opl',
|
||||
fields=[
|
||||
('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('number', models.CharField(blank=True, max_length=20, null=True, verbose_name='作业许可编号')),
|
||||
('level', models.CharField(blank=True, help_text='特技/三级/二级/主干道/次干道', max_length=20, null=True, verbose_name='作业级别')),
|
||||
('start_time', models.DateTimeField(blank=True, null=True, verbose_name='作业开始时间')),
|
||||
('end_time', models.DateTimeField(blank=True, null=True, verbose_name='作业结束时间')),
|
||||
('work_time', models.DateTimeField(blank=True, null=True, verbose_name='安装/拆除时间')),
|
||||
('accept_time', models.DateTimeField(blank=True, null=True, verbose_name='验收时间')),
|
||||
('work_type', models.CharField(blank=True, max_length=20, null=True, verbose_name='安装/拆除')),
|
||||
('power', models.PositiveIntegerField(blank=True, null=True, verbose_name='用电功率')),
|
||||
('power_to', models.CharField(blank=True, max_length=20, null=True, verbose_name='用电地点')),
|
||||
('power_from', models.CharField(blank=True, max_length=20, null=True, verbose_name='电源接入点')),
|
||||
('power_end_time', models.DateTimeField(blank=True, null=True, verbose_name='用电截至')),
|
||||
('power_start_time', models.DateTimeField(blank=True, null=True, verbose_name='用电开始')),
|
||||
('power_days', models.PositiveSmallIntegerField(blank=True, null=True, verbose_name='计划用电天数')),
|
||||
('other_risk', models.TextField(blank=True, null=True, verbose_name='其他风险')),
|
||||
('other_emr', models.TextField(blank=True, null=True, verbose_name='其他应急处置')),
|
||||
('escape_route', models.TextField(blank=True, null=True, verbose_name='逃生路径')),
|
||||
('risks_checked', models.JSONField(blank=True, default=list, verbose_name='风险选择')),
|
||||
('measures_checked', models.JSONField(blank=True, default=list, verbose_name='措施选择')),
|
||||
('close_note', models.PositiveSmallIntegerField(blank=True, choices=[(10, '作业正常结束'), (20, '因计划改变停止作业'), (30, '因发生异常终止作业'), (40, '其他')], help_text='正常结束/计划改变停止/发生异常停止/其他', null=True, verbose_name='作业关闭情况')),
|
||||
('close_dos', models.JSONField(blank=True, default=list, verbose_name='关闭工作')),
|
||||
('close_desc', models.TextField(blank=True, null=True, verbose_name='作业关闭描述')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='opl_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='OplCert',
|
||||
fields=[
|
||||
('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('name', models.CharField(max_length=20, verbose_name='证书名称')),
|
||||
('number', models.CharField(max_length=20, verbose_name='证书编号')),
|
||||
('type', models.PositiveSmallIntegerField(default=10, verbose_name='证书类型')),
|
||||
('issue_date', models.DateField(verbose_name='发证日期')),
|
||||
('expiration_date', models.DateField(verbose_name='有效期')),
|
||||
('review_date', models.DateField(verbose_name='下一次复审日期')),
|
||||
('file', models.TextField(blank=True, null=True, verbose_name='文件地址')),
|
||||
('certificate', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='hrm.certificate', verbose_name='关联证书')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='OplWorker',
|
||||
fields=[
|
||||
('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('duty', models.CharField(blank=True, help_text='作业人员/起重司机/司索人员/起重指挥/电工', max_length=100, null=True, verbose_name='工作职责')),
|
||||
('certificates', models.ManyToManyField(through='opm.OplCert', to='hrm.Certificate', verbose_name='关联证书')),
|
||||
('opl', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='opm.opl', verbose_name='作业许可')),
|
||||
('worker', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='作业人员')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='oplcert',
|
||||
name='opl_worker',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='opm.oplworker', verbose_name='关联作业人员'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='OplCate',
|
||||
fields=[
|
||||
('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('code', models.CharField(max_length=10, unique=True, verbose_name='标识')),
|
||||
('name', models.CharField(max_length=20, unique=True, verbose_name='名称')),
|
||||
('description', models.TextField(blank=True, null=True, verbose_name='描述')),
|
||||
('template_export', models.TextField(blank=True, null=True, verbose_name='导出word模板')),
|
||||
('close_options', models.ManyToManyField(related_name='oplcate_close_options', to='system.Dictionary', verbose_name='关闭工作')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='oplcate_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('measure_options', models.ManyToManyField(related_name='oplcate_measure_options', to='system.Dictionary', verbose_name='控制措施')),
|
||||
('risk_options', models.ManyToManyField(related_name='oplcate_risk_options', to='system.Dictionary', verbose_name='风险分析')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='oplcate_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
('workflow', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='wf.workflow', verbose_name='使用的工作流')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='opl',
|
||||
name='cate',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='opm.oplcate', verbose_name='作业许可种类'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='opl',
|
||||
name='charger',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='opl_charger', to=settings.AUTH_USER_MODEL, verbose_name='作业负责人'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='opl',
|
||||
name='close_imgs',
|
||||
field=models.ManyToManyField(blank=True, related_name='opl_close_imgs', to='system.File', verbose_name='作业关闭照片'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='opl',
|
||||
name='create_by',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='opl_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='opl',
|
||||
name='create_imgs',
|
||||
field=models.ManyToManyField(blank=True, related_name='opl_create_imgs', to='system.File', verbose_name='作业审批照片'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='opl',
|
||||
name='dept_do',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='system.dept', verbose_name='作业部门'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='opl',
|
||||
name='monitor',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='opl_monitor', to=settings.AUTH_USER_MODEL, verbose_name='作业监护人'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='opl',
|
||||
name='operation',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='opl_operation', to='opm.operation', verbose_name='关联作业'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='opl',
|
||||
name='ticket',
|
||||
field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='wf.ticket', verbose_name='关联工单'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='opl',
|
||||
name='update_by',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='opl_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='opl',
|
||||
name='workers',
|
||||
field=models.ManyToManyField(through='opm.OplWorker', to=settings.AUTH_USER_MODEL, verbose_name='作业人员'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='GasCheck',
|
||||
fields=[
|
||||
('id', models.CharField(editable=False, help_text='主键ID', max_length=20, primary_key=True, serialize=False, verbose_name='主键ID')),
|
||||
('create_time', models.DateTimeField(default=django.utils.timezone.now, help_text='创建时间', verbose_name='创建时间')),
|
||||
('update_time', models.DateTimeField(auto_now=True, help_text='修改时间', verbose_name='修改时间')),
|
||||
('is_deleted', models.BooleanField(default=False, help_text='删除标记', verbose_name='删除标记')),
|
||||
('check_time', models.DateTimeField(verbose_name='检测时间')),
|
||||
('check_place', models.CharField(max_length=100, verbose_name='检测部位')),
|
||||
('o2', models.DecimalField(decimal_places=1, max_digits=3)),
|
||||
('co', models.PositiveSmallIntegerField()),
|
||||
('lel', models.DecimalField(decimal_places=1, max_digits=3)),
|
||||
('is_ok', models.BooleanField(default=True, verbose_name='是否正常')),
|
||||
('checker', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='检测人')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='gascheck_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('opl', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='opm.opl', verbose_name='关联作业许可')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='gascheck_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
|
@ -1,9 +1,6 @@
|
|||
from django.db import models
|
||||
from apps.hrm.models import Certificate
|
||||
from apps.system.models import Dept, Dictionary, File, User
|
||||
from apps.utils.models import BaseModel, CommonADModel, CommonAModel, CommonBDModel, CommonBModel
|
||||
from apps.am.models import Area
|
||||
from apps.wf.models import Ticket, Workflow
|
||||
from apps.system.models import User
|
||||
from apps.utils.models import BaseModel, CommonADModel, CommonAModel, CommonBDModel
|
||||
|
||||
|
||||
# Create your models here.
|
||||
|
@ -14,11 +11,19 @@ class OplCate(CommonAModel):
|
|||
code = models.CharField('标识', max_length=10, unique=True)
|
||||
name = models.CharField('名称', max_length=20, unique=True)
|
||||
description = models.TextField('描述', null=True, blank=True)
|
||||
workflow = models.ForeignKey(Workflow, verbose_name='使用的工作流')
|
||||
workflow = models.ForeignKey('wf.workflow', verbose_name='使用的工作流',
|
||||
on_delete=models.SET_NULL,
|
||||
null=True, blank=True)
|
||||
template_export = models.TextField('导出word模板', null=True, blank=True)
|
||||
risk_options = models.ManyToManyField(Dictionary, verbose_name='风险分析')
|
||||
measure_options = models.ManyToManyField(Dictionary, verbose_name='控制措施')
|
||||
close_options = models.ManyToManyField(Dictionary, verbose_name='关闭工作')
|
||||
risk_options = models.ManyToManyField('system.dictionary',
|
||||
verbose_name='风险分析',
|
||||
related_name='oplcate_risk_options')
|
||||
measure_options = models.ManyToManyField('system.dictionary',
|
||||
verbose_name='控制措施',
|
||||
related_name='oplcate_measure_options')
|
||||
close_options = models.ManyToManyField('system.dictionary',
|
||||
verbose_name='关闭工作',
|
||||
related_name='oplcate_close_options')
|
||||
|
||||
|
||||
class Operation(CommonBDModel):
|
||||
|
@ -36,16 +41,18 @@ class Operation(CommonBDModel):
|
|||
)
|
||||
number = models.CharField('作业编号', max_length=20, null=True, blank=True)
|
||||
name = models.CharField('作业简述', max_length=200)
|
||||
area = models.ForeignKey(Area, verbose_name='作业区域',
|
||||
area = models.ForeignKey('am.area', verbose_name='作业区域',
|
||||
on_delete=models.CASCADE)
|
||||
place = models.TextField('具体地点', null=True, blank=True)
|
||||
start_time = models.DateTimeField('作业开始时间')
|
||||
end_time = models.DateTimeField('作业结束时间')
|
||||
dept_ter = models.ForeignKey(Dept, verbose_name='属地部门',
|
||||
on_delete=models.CASCADE)
|
||||
dept_bus = models.ForeignKey(Dept, verbose_name='业务部门',
|
||||
on_delete=models.CASCADE)
|
||||
coordinator = models.ForeignKey(User, verbose_name='业务部门协调员',
|
||||
dept_ter = models.ForeignKey('system.dept', verbose_name='属地部门',
|
||||
on_delete=models.CASCADE,
|
||||
related_name='op_dept_ter')
|
||||
dept_bus = models.ForeignKey('system.dept', verbose_name='业务部门',
|
||||
on_delete=models.CASCADE,
|
||||
related_name='op_dept_bus')
|
||||
coordinator = models.ForeignKey('system.user', verbose_name='业务部门协调员',
|
||||
on_delete=models.CASCADE)
|
||||
state_work = models.CharField('生产状态', max_length=20, help_text='运行/停机/检修')
|
||||
|
||||
|
@ -69,11 +76,11 @@ class Opl(CommonBDModel):
|
|||
on_delete=models.CASCADE)
|
||||
start_time = models.DateTimeField('作业开始时间', null=True, blank=True)
|
||||
end_time = models.DateTimeField('作业结束时间', null=True, blank=True)
|
||||
dept_do = models.ForeignKey(Dept, verbose_name='作业部门',
|
||||
dept_do = models.ForeignKey('system.dept', verbose_name='作业部门',
|
||||
on_delete=models.CASCADE)
|
||||
charger = models.ForeignKey(User, verbose_name='作业负责人',
|
||||
charger = models.ForeignKey('system.user', verbose_name='作业负责人',
|
||||
on_delete=models.CASCADE, related_name='opl_charger')
|
||||
monitor = models.ForeignKey(User, verbose_name='作业监护人',
|
||||
monitor = models.ForeignKey('system.user', verbose_name='作业监护人',
|
||||
on_delete=models.CASCADE, related_name='opl_monitor')
|
||||
# electrician = models.ForeignKey(User, verbose_name='电工',
|
||||
# on_delete=models.CASCADE,
|
||||
|
@ -92,16 +99,18 @@ class Opl(CommonBDModel):
|
|||
escape_route = models.TextField('逃生路径', null=True, blank=True)
|
||||
risks_checked = models.JSONField('风险选择', default=list, null=False, blank=True)
|
||||
measures_checked = models.JSONField('措施选择', default=list, null=False, blank=True)
|
||||
workers = models.ManyToManyField(User, verbose_name='作业人员', through='opm.oplworker')
|
||||
create_imgs = models.ManyToManyField(File, verbose_name='作业审批照片')
|
||||
close_imgs = models.ManyToManyField(File, verbose_name='作业关闭照片')
|
||||
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)
|
||||
close_imgs = models.ManyToManyField('system.file', verbose_name='作业关闭照片',
|
||||
related_name='opl_close_imgs', blank=True)
|
||||
close_note = models.PositiveSmallIntegerField('作业关闭情况',
|
||||
choices=CLOSE_CHOICES1,
|
||||
help_text='正常结束/计划改变停止/发生异常停止/其他',
|
||||
null=True, blank=True)
|
||||
close_dos = models.JSONField('关闭工作', default=list, null=False, blank=True)
|
||||
close_desc = models.TextField('作业关闭描述', null=True, blank=True)
|
||||
ticket = models.OneToOneField(Ticket, verbose_name='关联工单',
|
||||
ticket = models.OneToOneField('wf.ticket', verbose_name='关联工单',
|
||||
on_delete=models.CASCADE,
|
||||
null=True, blank=True)
|
||||
|
||||
|
@ -110,12 +119,14 @@ class OplWorker(BaseModel):
|
|||
"""
|
||||
作业许可人员
|
||||
"""
|
||||
worker = models.ForeignKey(User, verbose_name='作业人员',
|
||||
worker = models.ForeignKey('system.user', verbose_name='作业人员',
|
||||
on_delete=models.CASCADE)
|
||||
opl = models.ForeignKey(Opl, verbose_name='作业许可',
|
||||
on_delete=models.CASCADE)
|
||||
duty = models.CharField('工作职责', null=True, blank=True, help_text='作业人员/起重司机/司索人员/起重指挥/电工')
|
||||
certificates = models.ManyToManyField(Certificate, verbose_name='关联证书', through='opt.optcert')
|
||||
duty = models.CharField('工作职责', max_length=100,
|
||||
null=True, blank=True,
|
||||
help_text='作业人员/起重司机/司索人员/起重指挥/电工')
|
||||
certificates = models.ManyToManyField('hrm.certificate', verbose_name='关联证书', through='opm.oplcert')
|
||||
|
||||
|
||||
class OplCert(BaseModel):
|
||||
|
@ -124,7 +135,7 @@ class OplCert(BaseModel):
|
|||
"""
|
||||
opl_worker = models.ForeignKey(OplWorker, verbose_name='关联作业人员',
|
||||
on_delete=models.CASCADE)
|
||||
certificate = models.ForeignKey(Certificate, verbose_name='关联证书',
|
||||
certificate = models.ForeignKey('hrm.certificate', verbose_name='关联证书',
|
||||
on_delete=models.CASCADE)
|
||||
name = models.CharField('证书名称', max_length=20)
|
||||
number = models.CharField('证书编号', max_length=20)
|
||||
|
@ -140,10 +151,10 @@ class GasCheck(CommonADModel):
|
|||
气体检测记录
|
||||
"""
|
||||
check_time = models.DateTimeField('检测时间')
|
||||
check_place = models.CharField('检测部位')
|
||||
check_place = models.CharField('检测部位', max_length=100)
|
||||
o2 = models.DecimalField(decimal_places=1, max_digits=3)
|
||||
co = models.PositiveSmallIntegerField()
|
||||
lel = models.DecimalField(decimal_places=1, max_digits=3)
|
||||
is_ok = models.BooleanField('是否正常', default=True)
|
||||
checker = models.ForeignKey(User, verbose_name='检测人')
|
||||
opl = models.ForeignKey(Opl, verbose_name='关联作业许可')
|
||||
checker = models.ForeignKey(User, verbose_name='检测人', on_delete=models.CASCADE)
|
||||
opl = models.ForeignKey(Opl, verbose_name='关联作业许可', on_delete=models.CASCADE)
|
||||
|
|
|
@ -10,7 +10,7 @@ from rest_framework.exceptions import ParseError
|
|||
class OplCateCreateUpdateSerializer(CustomModelSerializer):
|
||||
class Meta:
|
||||
model = OplCate
|
||||
fields = ['code', 'name', 'template_export', 'workflow']
|
||||
exclude = EXCLUDE_FIELDS
|
||||
|
||||
|
||||
class OplCateSerializer(CustomModelSerializer):
|
||||
|
@ -33,7 +33,7 @@ class OperationSerializer(CustomModelSerializer):
|
|||
|
||||
|
||||
class OplWorkerCreateSerializer(CustomModelSerializer):
|
||||
certificates = serializers.PrimaryKeyRelatedField(label='证书ID', many=True)
|
||||
certificates = serializers.PrimaryKeyRelatedField(label='证书ID', many=True, queryset=Certificate.objects.all())
|
||||
|
||||
class Meta:
|
||||
model = OplWorker
|
||||
|
@ -56,7 +56,7 @@ class OplWorkerCreateSerializer(CustomModelSerializer):
|
|||
|
||||
|
||||
class OplWorkerUpdateSerializer(CustomModelSerializer):
|
||||
certificates = serializers.PrimaryKeyRelatedField(label='证书ID', many=True)
|
||||
certificates = serializers.PrimaryKeyRelatedField(label='证书ID', many=True, queryset=Certificate.objects.all())
|
||||
|
||||
class Meta:
|
||||
model = OplWorker
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
from django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
from apps.opm.views import GasCheckViewSet, OperationViewSet, OplCateViewSet, OplViewSet, OplWorkerViewSet
|
||||
|
||||
API_BASE_URL = 'api/opm/'
|
||||
HTML_BASE_URL = 'opm/'
|
||||
|
||||
router = DefaultRouter()
|
||||
router.register('opl_cate', OplCateViewSet, basename='opl_cate')
|
||||
router.register('operation', OperationViewSet, basename='operation')
|
||||
router.register('opl', OplViewSet, basename='opl')
|
||||
router.register('opl_worker', OplWorkerViewSet, basename='opl_worker')
|
||||
router.register('gas_check', GasCheckViewSet, basename='gas_check')
|
||||
urlpatterns = [
|
||||
path(API_BASE_URL, include(router.urls)),
|
||||
]
|
|
@ -2,7 +2,6 @@ from django.shortcuts import render
|
|||
from rest_framework.response import Response
|
||||
from apps.opm.models import GasCheck, Operation, Opl, OplCate, OplWorker
|
||||
from apps.opm.serializers import GasCheckCreateUpdateSerializer, GasCheckSerializer, OperationCreateUpdateSerializer, OperationSerializer, OplCateCreateUpdateSerializer, OplCateSerializer, OplSerializer, OplWorkerCreateSerializer, OplWorkerUpdateSerializer
|
||||
from apps.opm.services import create_opl_ticket
|
||||
from apps.utils.viewsets import CustomGenericViewSet, CustomModelViewSet
|
||||
from rest_framework.exceptions import ParseError
|
||||
from rest_framework.mixins import CreateModelMixin, ListModelMixin, DestroyModelMixin
|
||||
|
|
|
@ -372,7 +372,7 @@ class UserPostViewSet(CreateModelMixin, DestroyModelMixin, ListModelMixin, Custo
|
|||
|
||||
|
||||
class UserViewSet(CustomModelViewSet):
|
||||
queryset = User.objects.all()
|
||||
queryset = User.objects.filter(type='employee')
|
||||
serializer_class = UserListSerializer
|
||||
create_serializer_class = UserCreateSerializer
|
||||
update_serializer_class = UserUpdateSerializer
|
||||
|
|
|
@ -1,3 +1,13 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from apps.wf.models import State, Workflow
|
||||
# Register your models here.
|
||||
|
||||
|
||||
@admin.register(Workflow)
|
||||
class WorkflowAdmin(admin.ModelAdmin):
|
||||
date_hierarchy = 'create_time'
|
||||
|
||||
|
||||
@admin.register(State)
|
||||
class StateAdmin(admin.ModelAdmin):
|
||||
date_hierarchy = 'create_time'
|
|
@ -59,7 +59,8 @@ INSTALLED_APPS = [
|
|||
'apps.hrm',
|
||||
'apps.am',
|
||||
'apps.vm',
|
||||
'apps.rpm'
|
||||
'apps.rpm',
|
||||
'apps.opm'
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
|
|
|
@ -52,6 +52,7 @@ urlpatterns = [
|
|||
path('', include('apps.am.urls')),
|
||||
path('', include('apps.ecm.urls')),
|
||||
path('', include('apps.rpm.urls')),
|
||||
path('', include('apps.opm.urls')),
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue