Merge branch 'master' of http://gitea.xxhhcty.xyz:8080/zcdsj/factory
This commit is contained in:
commit
9d692b4d5d
|
@ -0,0 +1,67 @@
|
|||
# Generated by Django 3.2.12 on 2025-09-11 06:41
|
||||
|
||||
from django.conf import settings
|
||||
import django.core.validators
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('system', '0006_auto_20241213_1249'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('ofm', '0006_vehicle_belong_dept'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='lendingseal',
|
||||
name='seal',
|
||||
field=models.JSONField(default=list, help_text='[公章,法人章,财务章,合同章,业务章,其他章]', verbose_name='印章信息'),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='FileRecord',
|
||||
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=100, verbose_name='资料名称')),
|
||||
('number', models.CharField(blank=True, max_length=50, null=True, verbose_name='档案编号')),
|
||||
('counts', models.CharField(blank=True, max_length=10, null=True, verbose_name='文件份数')),
|
||||
('location', models.CharField(blank=True, max_length=100, null=True, verbose_name='存放位置')),
|
||||
('contacts', models.CharField(blank=True, max_length=50, null=True, validators=[django.core.validators.RegexValidator('^1[3456789]\\d{9}$', '手机号码格式不正确')], verbose_name='存档人电话')),
|
||||
('reciver', models.CharField(blank=True, max_length=50, null=True, verbose_name='接收人(综合办)')),
|
||||
('remark', models.TextField(blank=True, max_length=200, null=True, verbose_name='备注')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='filerecord_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='filerecord_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='filerecord_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='BorrowRecord',
|
||||
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='删除标记')),
|
||||
('borrow_date', models.DateField(blank=True, null=True, verbose_name='借阅日期')),
|
||||
('return_date', models.DateField(blank=True, null=True, verbose_name='归还日期')),
|
||||
('contacts', models.CharField(blank=True, max_length=50, null=True, validators=[django.core.validators.RegexValidator('^1[3456789]\\d{9}$', '手机号码格式不正确')], verbose_name='借阅人电话')),
|
||||
('remark', models.JSONField(default=list, help_text=['借阅', '复印', '查阅'], verbose_name='用途')),
|
||||
('belong_dept', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='borrowrecord_belong_dept', to='system.dept', verbose_name='所属部门')),
|
||||
('borrow_file', models.ManyToManyField(related_name='borrow_records', to='ofm.FileRecord')),
|
||||
('borrow_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='borrow_user', to=settings.AUTH_USER_MODEL)),
|
||||
('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='borrowrecord_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
|
||||
('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='borrowrecord_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
|
||||
],
|
||||
options={
|
||||
'abstract': False,
|
||||
},
|
||||
),
|
||||
]
|
|
@ -48,7 +48,7 @@ class MroomSlot(BaseModel):
|
|||
class LendingSeal(CommonBDModel):
|
||||
"""TN: 印章外出用印信息"""
|
||||
|
||||
seal = models.JSONField('印章信息',default=list ,help_text='{"seal_name": "印章名称"}')
|
||||
seal = models.JSONField('印章信息',default=list ,help_text='[公章,法人章,财务章,合同章,业务章,其他章]')
|
||||
filename = models.TextField('文件名称')
|
||||
file = models.TextField('文件内容')
|
||||
file_count = models.PositiveIntegerField('用印份数')
|
||||
|
@ -83,26 +83,25 @@ class Vehicle(CommonBDModel):
|
|||
return super().save(*args, **kwargs)
|
||||
|
||||
|
||||
# class FileRecord(CommonBDModel):
|
||||
# """TN: 档案台账"""
|
||||
# name = models.CharField('资料名称', max_length=100)
|
||||
# number = models.CharField('档案编号', max_length=50)
|
||||
# files = models.CharField('文件份数', max_length=10)
|
||||
# location = models.CharField('存放位置', max_length=100)
|
||||
# contacts = models.CharField('存档人电话', max_length=50)
|
||||
# location = models.CharField('存档位置', max_length=100)
|
||||
# reciver = models.CharField('接收人(综合办)', max_length=50)
|
||||
# remark = models.CharField('备注', max_length=100)
|
||||
class FileRecord(CommonBDModel):
|
||||
"""TN: 档案台账"""
|
||||
name = models.CharField('资料名称', max_length=100)
|
||||
number = models.CharField('档案编号', max_length=50, null=True, blank=True)
|
||||
counts = models.CharField('文件份数', max_length=10, null=True, blank=True)
|
||||
location = models.CharField('存放位置', max_length=100, null=True, blank=True)
|
||||
contacts = models.CharField('存档人电话', max_length=50, validators=[phone_validator], blank=True, null=True)
|
||||
reciver = models.CharField('接收人(综合办)', max_length=50, null=True, blank=True)
|
||||
remark = models.TextField('备注', max_length=200, null=True, blank=True)
|
||||
|
||||
|
||||
# class BorrowRecord(CommonBDModel):
|
||||
# """TN: 借阅、复印、查阅记录"""
|
||||
# files = models.ManyToManyField(FileRecord, related_name="borrow_records")
|
||||
# borrow_user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="borrow_user")
|
||||
# borrow_date = models.DateField('借阅日期')
|
||||
# return_date = models.DateField('归还日期')
|
||||
# contacts = models.CharField('借阅人电话', max_length=50, validators=[phone_validator], null=True, blank=True)
|
||||
# remark = models.CharField('用途', max_length=100)
|
||||
class BorrowRecord(CommonBDModel):
|
||||
"""TN: 借阅、复印、查阅记录"""
|
||||
borrow_file = models.ManyToManyField(FileRecord, related_name="borrow_records")
|
||||
borrow_user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="borrow_user")
|
||||
borrow_date = models.DateField('借阅日期', null=True, blank=True)
|
||||
return_date = models.DateField('归还日期', null=True, blank=True)
|
||||
contacts = models.CharField('借阅人电话', max_length=50, validators=[phone_validator], null=True, blank=True)
|
||||
remark = models.JSONField('用途', default=list, help_text=['借阅', '复印', '查阅'])
|
||||
|
||||
|
||||
# class Publicity(CommonBDModel):
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from .models import (Mroom, MroomBooking, MroomSlot, LendingSeal, Vehicle)
|
||||
from .models import (Mroom, MroomBooking, MroomSlot, LendingSeal, Vehicle, FileRecord, BorrowRecord )
|
||||
# , Publicity,
|
||||
# FileRecord, BorrowRecord, Publicity, PatentInfo, PaperOfm, Platform, Project, PatentRecord, PaperRecord, ProjectApproval, ProjectInfo)
|
||||
# Publicity, PatentInfo, PaperOfm, Platform, Project, PatentRecord, PaperRecord, ProjectApproval, ProjectInfo)
|
||||
from apps.utils.serializers import CustomModelSerializer
|
||||
from rest_framework import serializers
|
||||
from django.db import transaction
|
||||
|
@ -64,20 +64,6 @@ class MroomSlotSerializer(CustomModelSerializer):
|
|||
fields = '__all__'
|
||||
|
||||
|
||||
# class SealSerializer(CustomModelSerializer):
|
||||
# class Meta:
|
||||
# model = Seal
|
||||
# fields = '__all__'
|
||||
|
||||
|
||||
# class SealManageSerializer(CustomModelSerializer):
|
||||
# seal_name = serializers.CharField(source='seal.name', read_only=True)
|
||||
# class Meta:
|
||||
# model = SealManage
|
||||
# fields = '__all__'
|
||||
# read_only_fields = EXCLUDE_FIELDS
|
||||
|
||||
|
||||
class LendingSealSerializer(CustomModelSerializer):
|
||||
create_by_name = serializers.CharField(source='create_by.name', read_only=True)
|
||||
belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True)
|
||||
|
@ -96,20 +82,24 @@ class VehicleSerializer(CustomModelSerializer):
|
|||
read_only_fields = EXCLUDE_FIELDS + ['actual_km']
|
||||
|
||||
|
||||
# class FileRecordSerializer(CustomModelSerializer):
|
||||
# class Meta:
|
||||
# model = FileRecord
|
||||
# fields = '__all__'
|
||||
# read_only_fields = EXCLUDE_FIELDS
|
||||
class FileRecordSerializer(CustomModelSerializer):
|
||||
create_by_name = serializers.CharField(source='create_by.name', read_only=True)
|
||||
belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True)
|
||||
class Meta:
|
||||
model = FileRecord
|
||||
fields = '__all__'
|
||||
read_only_fields = EXCLUDE_FIELDS
|
||||
|
||||
|
||||
# class BorrowRecordSerializer(CustomModelSerializer):
|
||||
# files = serializers.PrimaryKeyRelatedField(queryset=FileRecord.objects.all(), many=True, write_only=True, label="借阅文件")
|
||||
# file_detail = FileRecordSerializer(source='file', many=True, read_only=True, label="借阅文件详情")
|
||||
# class Meta:
|
||||
# model = BorrowRecord
|
||||
# fields = '__all__'
|
||||
# read_only_fields = EXCLUDE_FIELDS
|
||||
class BorrowRecordSerializer(CustomModelSerializer):
|
||||
create_by_name = serializers.CharField(source='create_by.name', read_only=True)
|
||||
belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True)
|
||||
files = serializers.PrimaryKeyRelatedField(queryset=FileRecord.objects.all(), many=True, write_only=True, label="借阅文件")
|
||||
file_detail = FileRecordSerializer(source='borrow_file', many=True, read_only=True, label="借阅文件详情")
|
||||
class Meta:
|
||||
model = BorrowRecord
|
||||
fields = '__all__'
|
||||
read_only_fields = EXCLUDE_FIELDS
|
||||
|
||||
|
||||
# class PublicitySerializer(CustomModelSerializer):
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
from apps.wf.models import Ticket
|
||||
# TicketFlow, Transition, Workflow, CustomField, State,
|
||||
from apps.ofm.models import LendingSeal, Vehicle
|
||||
from apps.ofm.models import LendingSeal, Vehicle, BorrowRecord
|
||||
from rest_framework.exceptions import ParseError
|
||||
|
||||
|
||||
|
@ -39,3 +39,17 @@ def bind_vehicle(ticket: Ticket, transition, new_ticket_data: dict):
|
|||
ins.ticket = ticket
|
||||
ins.save()
|
||||
|
||||
|
||||
def bind_file(ticket: Ticket, transition, new_ticket_data: dict):
|
||||
ins = BorrowRecord.objects.get(id=new_ticket_data['t_id'])
|
||||
ticket_data = ticket.ticket_data
|
||||
ticket_data.update({
|
||||
't_model': 'BorrowRecord',
|
||||
't_id': ins.id,
|
||||
})
|
||||
ticket.ticket_data = ticket_data
|
||||
ticket.create_by = ins.create_by
|
||||
ticket.save()
|
||||
if ins.ticket is None:
|
||||
ins.ticket = ticket
|
||||
ins.save()
|
|
@ -1,8 +1,8 @@
|
|||
from django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
from apps.ofm.views import (MroomViewSet, MroomBookingViewSet, MroomSlotViewSet,LendingSealViewSet, VehicleViewSet)
|
||||
# , , FilerecordViewSet, SealModelViewSet,
|
||||
# FileborrowViewSet, PublicityViewSet, PatentInfoViewSet, PaperViewSet, PlatformViewSet,
|
||||
from apps.ofm.views import (MroomViewSet, MroomBookingViewSet, MroomSlotViewSet,LendingSealViewSet, VehicleViewSet, FilerecordViewSet, FileborrowViewSet)
|
||||
# SealModelViewSet,
|
||||
# , PublicityViewSet, PatentInfoViewSet, PaperViewSet, PlatformViewSet,
|
||||
# ProjectViewSet, PatentRecordViewSet, PaperRecordViewSet, ProjectApprovalViewSet, ProjectInfoViewSet)
|
||||
|
||||
API_BASE_URL = 'api/ofm/'
|
||||
|
@ -15,8 +15,8 @@ router.register('mroomslot', MroomSlotViewSet, basename='mroomslot')
|
|||
# router.register('sealmanage', SealManageViewSet, basename='sealmanage')
|
||||
router.register('lendingseal', LendingSealViewSet, basename='lendingseal')
|
||||
router.register('vehicle', VehicleViewSet, basename='vehicle')
|
||||
# router.register('filerecord', FilerecordViewSet, basename='filerecord')
|
||||
# router.register('fileborrow', FileborrowViewSet, basename='fileborrow')
|
||||
router.register('filerecord', FilerecordViewSet, basename='filerecord')
|
||||
router.register('fileborrow', FileborrowViewSet, basename='fileborrow')
|
||||
# router.register('publicity', PublicityViewSet, basename='publicity')
|
||||
# router.register('patentinfo', PatentInfoViewSet, basename='patentinfo')
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
from django.shortcuts import render
|
||||
from apps.utils.viewsets import CustomModelViewSet, CustomGenericViewSet
|
||||
from .models import Mroom, MroomBooking, MroomSlot, LendingSeal, Vehicle
|
||||
# , FileRecord, Seal
|
||||
# BorrowRecord, Publicity, PatentInfo, PaperOfm, Platform, Project, PatentRecord, PaperRecord, ProjectApproval, ProjectInfo)
|
||||
from .serializers import (MroomSerializer, MroomBookingSerializer, MroomSlotSerializer, LendingSealSerializer, VehicleSerializer)
|
||||
from .models import Mroom, MroomBooking, MroomSlot, LendingSeal, Vehicle, FileRecord, BorrowRecord
|
||||
# Seal
|
||||
# Publicity, PatentInfo, PaperOfm, Platform, Project, PatentRecord, PaperRecord, ProjectApproval, ProjectInfo)
|
||||
from .serializers import (MroomSerializer, MroomBookingSerializer, MroomSlotSerializer, LendingSealSerializer, VehicleSerializer, FileRecordSerializer, BorrowRecordSerializer)
|
||||
# ,SealSerializer,
|
||||
# LendingSealSerializer, FileRecordSerializer, BorrowRecordSerializer, PublicitySerializer,
|
||||
# PatentInfoSerializer, PaperSerializer, PlatformSerializer, ProjectSerializer, ProjectMemberSerializer, PaperRecordSerializer, ProjectApprovalSerializer, ProjectInfoSerializer)
|
||||
|
@ -126,26 +126,26 @@ class VehicleViewSet(CustomModelViewSet):
|
|||
ordering = ["create_time"]
|
||||
|
||||
|
||||
# class FilerecordViewSet(CustomModelViewSet):
|
||||
# """list: 文件
|
||||
class FilerecordViewSet(CustomModelViewSet):
|
||||
"""list: 文件
|
||||
|
||||
# 文件
|
||||
# """
|
||||
# queryset = FileRecord.objects.all()
|
||||
# serializer_class = FileRecordSerializer
|
||||
# filterset_fields = ["submit_user", "name", "number"]
|
||||
# ordering = ["create_time", "number", "name"]
|
||||
文件
|
||||
"""
|
||||
queryset = FileRecord.objects.all()
|
||||
serializer_class = FileRecordSerializer
|
||||
filterset_fields = [ "name", "number"]
|
||||
ordering = ["create_time", "number", "name"]
|
||||
|
||||
|
||||
# class FileborrowViewSet(CustomModelViewSet):
|
||||
# """list: 文件借阅
|
||||
class FileborrowViewSet(CustomModelViewSet):
|
||||
"""list: 文件借阅
|
||||
|
||||
# 文件借阅
|
||||
# """
|
||||
# queryset = BorrowRecord.objects.all()
|
||||
# serializer_class = BorrowRecordSerializer
|
||||
# filterset_fields = ["files", "borrow_user"]
|
||||
# ordering = ["create_time"]
|
||||
文件借阅
|
||||
"""
|
||||
queryset = BorrowRecord.objects.all()
|
||||
serializer_class = BorrowRecordSerializer
|
||||
filterset_fields = ["borrow_file", "borrow_user"]
|
||||
ordering = ["create_time"]
|
||||
|
||||
|
||||
# class PublicityViewSet(CustomModelViewSet):
|
||||
|
|
Loading…
Reference in New Issue