1.增加制度增删改查,
2.修复查询合同编号问题
This commit is contained in:
26
business/migrations/0017_system.py
Normal file
26
business/migrations/0017_system.py
Normal file
@@ -0,0 +1,26 @@
|
||||
# Generated by Django 4.2.25 on 2026-01-31 14:16
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('business', '0016_casechangerequest_need_approval'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='System',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('title', models.CharField(max_length=100)),
|
||||
('content', models.TextField()),
|
||||
('times', models.CharField(max_length=100)),
|
||||
('file', models.TextField()),
|
||||
('username', models.CharField(max_length=100)),
|
||||
('state', models.CharField(max_length=100)),
|
||||
('is_deleted', models.BooleanField(default=False)),
|
||||
],
|
||||
),
|
||||
]
|
||||
@@ -154,6 +154,14 @@ class Announcement(models.Model):
|
||||
state = models.CharField(max_length=100) # 状态
|
||||
is_deleted = models.BooleanField(default=False) # 软删除标记
|
||||
|
||||
class System(models.Model):
|
||||
title = models.CharField(max_length=100) # 标题
|
||||
content = models.TextField() # 内容
|
||||
times = models.CharField(max_length=100) # 提交时间
|
||||
file = models.TextField() # 文件
|
||||
username = models.CharField(max_length=100) # 提交人
|
||||
state = models.CharField(max_length=100) # 状态
|
||||
is_deleted = models.BooleanField(default=False) # 软删除标记
|
||||
|
||||
class LawyerFlie(models.Model):
|
||||
title = models.CharField(max_length=100) # 标题
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from django.urls import path
|
||||
|
||||
from .models import Schedule
|
||||
from .views import registration,registrationDetail,Project,Projectquerytype,ProjectDetail,EditProject,BidRegistration,BidDetail,registrationList,caseManagement,caseManagementDetail,CaseAttachmentUpload,CaseAttachmentUpdate,Uploadinvoice,InvoiceDetail,Log,LogDetail,accumulate,preFilingLinkedCases,Application,ApplicationDetail,WarehousingRegistration,WarehousingDetail,PlatformRegistration,PlatformDetail,EditPlatformDetail,DeletePlatformDetail,bulletin,BulletinDetail,EditBulletin,deleteBulletin,Lawyersdocuments,LawyersdocumentsDetail,LwaDetail,CreateSchedule,DeleteSchedule,ScheduleDetail,handleSchedule,AddRermission,DisplayRermission,DeleteRermission,EditRermission,addRole,DeleteRole,EditRole,displayRole,modifypermissions,getRolePermissions,DeleteRegistration,EditRegistration,DeleteProject,EditBid,DeleteBid,EditCase,DeleteCase,EditApplication,DeleteApplication,EditWarehousing,DeleteWarehousing,EditLawyerFlie,EditSchedule,TransferCase,CaseChangeRequestCreate,CaseChangeRequestList,CaseChangeRequestDetail,ProjectDropdownList,CaseDropdownList,ConflictSearch,CreateCaseTag,CaseTagList,CaseTagDetail,EditCaseTag,DeleteCaseTag,CaseTagDropdownList,CaseListByTag,SetCaseTags,PropagandaEit
|
||||
from .views import registration,registrationDetail,Project,Projectquerytype,ProjectDetail,EditProject,BidRegistration,BidDetail,registrationList,caseManagement,caseManagementDetail,CaseAttachmentUpload,CaseAttachmentUpdate,Uploadinvoice,InvoiceDetail,Log,LogDetail,accumulate,preFilingLinkedCases,Application,ApplicationDetail,WarehousingRegistration,WarehousingDetail,PlatformRegistration,PlatformDetail,EditPlatformDetail,DeletePlatformDetail,bulletin,BulletinDetail,EditBulletin,deleteBulletin,Lawyersdocuments,LawyersdocumentsDetail,LwaDetail,CreateSchedule,DeleteSchedule,ScheduleDetail,handleSchedule,AddRermission,DisplayRermission,DeleteRermission,EditRermission,addRole,DeleteRole,EditRole,displayRole,modifypermissions,getRolePermissions,DeleteRegistration,EditRegistration,DeleteProject,EditBid,DeleteBid,EditCase,DeleteCase,EditApplication,DeleteApplication,EditWarehousing,DeleteWarehousing,EditLawyerFlie,EditSchedule,TransferCase,CaseChangeRequestCreate,CaseChangeRequestList,CaseChangeRequestDetail,ProjectDropdownList,CaseDropdownList,ConflictSearch,CreateCaseTag,CaseTagList,CaseTagDetail,EditCaseTag,DeleteCaseTag,CaseTagDropdownList,CaseListByTag,SetCaseTags,PropagandaEit,addSystem,SystemList,eitSystem,deleteSystem
|
||||
urlpatterns = [
|
||||
|
||||
path('register',registration.as_view(),name='register'),
|
||||
@@ -81,5 +81,9 @@ urlpatterns = [
|
||||
path('case-tag-dropdown-list',CaseTagDropdownList.as_view(),name='case-tag-dropdown-list'),
|
||||
path('case-list-by-tag',CaseListByTag.as_view(),name='case-list-by-tag'),
|
||||
path('set-case-tags',SetCaseTags.as_view(),name='set-case-tags'),
|
||||
path("PropagandaEit",PropagandaEit.as_view(),name="PropagandaEit")
|
||||
path("PropagandaEit",PropagandaEit.as_view(),name="PropagandaEit"),
|
||||
path('addSystem',addSystem.as_view(),name='addSystem'),
|
||||
path('SystemList',SystemList.as_view(),name='SystemList'),
|
||||
path('eitSystem',eitSystem.as_view(),name='eitSystem'),
|
||||
path('deleteSystem',deleteSystem.as_view(),name='deleteSystem')
|
||||
]
|
||||
@@ -8,7 +8,7 @@ from decimal import Decimal, InvalidOperation
|
||||
from User.models import User, Approval
|
||||
from User.utils import log_operation, normalize_approvers_param, build_missing_approvers_message
|
||||
from .models import PreFiling, ProjectRegistration, Bid, Case, Invoice, Caselog, SealApplication, Warehousing, \
|
||||
RegisterPlatform, Announcement, LawyerFlie, Schedule, permission, role, CaseChangeRequest, CaseTag,Propaganda
|
||||
RegisterPlatform, Announcement, LawyerFlie, Schedule, permission, role, CaseChangeRequest, CaseTag,Propaganda,System
|
||||
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
|
||||
from utility.utility import flies
|
||||
from datetime import datetime
|
||||
@@ -1686,7 +1686,7 @@ class caseManagementDetail(APIView):
|
||||
times = request.data.get('times')
|
||||
end_time = request.data.get('end_time')
|
||||
type = request.data.get('type')
|
||||
serialnumber = request.data.get('serialnumber')
|
||||
serialnumber = request.data.get('contract_no')
|
||||
party_name = request.data.get('party_name')
|
||||
client_name = request.data.get('client_name')
|
||||
tags = request.data.get('tags')
|
||||
@@ -1701,13 +1701,14 @@ class caseManagementDetail(APIView):
|
||||
Q_obj &= Q(project_id__in=por_id)
|
||||
|
||||
if serialnumber:
|
||||
Q_obj &= Q(serialnumber__icontains=serialnumber)
|
||||
Q_obj &= Q(contract_no__icontains=serialnumber)
|
||||
if party_name:
|
||||
Q_obj &= Q(party_name__icontains=party_name)
|
||||
if client_name:
|
||||
Q_obj &= Q(client_name__icontains=client_name)
|
||||
if tags:
|
||||
Q_obj &= Q(tags__contains=tags)
|
||||
cas = CaseTag.objects.filter(name__icontains=tags).values_list('id', flat=True)
|
||||
Q_obj &= Q(tags__in=cas)
|
||||
|
||||
pre = Case.objects.filter(Q_obj, is_deleted=False).order_by('-id')
|
||||
total = len(pre)
|
||||
@@ -2454,6 +2455,7 @@ class ApplicationDetail(APIView):
|
||||
times = request.data.get('times')
|
||||
end_time = request.data.get('end_time')
|
||||
seal_type = request.data.get('seal_type')
|
||||
CaseNumber = request.data.get('CaseNumber')
|
||||
if not all([page, per_page]):
|
||||
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
|
||||
Q_obj = Q()
|
||||
@@ -2463,6 +2465,9 @@ class ApplicationDetail(APIView):
|
||||
if seal_type:
|
||||
Q_obj &= Q(seal_type=seal_type)
|
||||
|
||||
if CaseNumber:
|
||||
Q_obj &= Q(CaseNumber__icontains=CaseNumber)
|
||||
|
||||
seas = SealApplication.objects.filter(Q_obj, is_deleted=False).order_by('-id')
|
||||
total = len(seas)
|
||||
|
||||
@@ -5002,4 +5007,128 @@ class PropagandaEit(APIView):
|
||||
return Response({
|
||||
'message': '更新成功',
|
||||
'code': 0
|
||||
}, status=status.HTTP_200_OK)
|
||||
}, status=status.HTTP_200_OK)
|
||||
|
||||
|
||||
class addSystem(APIView):
|
||||
def post(self, request):
|
||||
title = request.data.get('title')
|
||||
content = request.data.get('content')
|
||||
file = request.FILES.getlist('file')
|
||||
state = request.data.get('state')
|
||||
token = request.META.get('token')
|
||||
|
||||
if not all([title, content]):
|
||||
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
|
||||
now = datetime.now()
|
||||
date_str = now.strftime('%Y-%m-%d')
|
||||
bol = 0
|
||||
if state == "置顶":
|
||||
bol = 1
|
||||
|
||||
user = User.objects.get(token=token, is_deleted=False).username
|
||||
System.objects.create(
|
||||
title=title,
|
||||
content=content,
|
||||
file=json.dumps(flies(file)),
|
||||
username=user,
|
||||
times=date_str,
|
||||
state=bol
|
||||
)
|
||||
return Response({'message': '添加成功', 'code': 0}, status=status.HTTP_200_OK)
|
||||
|
||||
class SystemList(APIView):
|
||||
def post(self, request):
|
||||
page = request.data.get('page')
|
||||
per_page = request.data.get('per_page')
|
||||
seas = System.objects.filter(is_deleted=False).order_by('-state', '-times')
|
||||
total = len(seas)
|
||||
|
||||
paginator = Paginator(seas, per_page)
|
||||
try:
|
||||
user_agents_page = paginator.page(page)
|
||||
|
||||
except PageNotAnInteger:
|
||||
user_agents_page = paginator.page(1)
|
||||
except EmptyPage:
|
||||
user_agents_page = paginator.page(paginator.num_pages)
|
||||
data = []
|
||||
for info in user_agents_page.object_list:
|
||||
data.append({
|
||||
"id": info.id,
|
||||
"title": info.title,
|
||||
"content": info.content,
|
||||
"times": info.times,
|
||||
"file": info.file,
|
||||
"username": info.username,
|
||||
"state": info.state,
|
||||
})
|
||||
|
||||
return Response({'message': '展示成功', "total": total, 'data': data, 'code': 0}, status=status.HTTP_200_OK)
|
||||
|
||||
class eitSystem(APIView):
|
||||
def post(self, request):
|
||||
ID = request.data.get('id')
|
||||
title = request.data.get('title')
|
||||
content = request.data.get('content')
|
||||
file = request.FILES.getlist('file')
|
||||
state = request.data.get('state')
|
||||
token = request.META.get('token') # 从中间件设置的 token 获取
|
||||
|
||||
if not all([title, content, ID]):
|
||||
return Response({'status': 'error', 'message': '缺少参数', 'code': 1}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
try:
|
||||
ann = Announcement.objects.get(id=ID, is_deleted=False)
|
||||
except Announcement.DoesNotExist:
|
||||
return Response({'status': 'error', 'message': '公告不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
now = datetime.now()
|
||||
date_str = now.strftime('%Y-%m-%d')
|
||||
|
||||
if state:
|
||||
bol = 0
|
||||
if state == "置顶":
|
||||
bol = 1
|
||||
ann.state = bol
|
||||
ann.save(update_fields=['state'])
|
||||
|
||||
# 获取用户信息(如果 token 存在)
|
||||
if token:
|
||||
try:
|
||||
user = User.objects.get(token=token, is_deleted=False).username
|
||||
except User.DoesNotExist:
|
||||
# 如果用户不存在,使用原有用户名
|
||||
user = ann.username
|
||||
else:
|
||||
# 如果 token 不存在,使用原有用户名
|
||||
user = ann.username
|
||||
|
||||
if title:
|
||||
ann.title = title
|
||||
ann.save(update_fields=['title'])
|
||||
if content:
|
||||
ann.content = content
|
||||
ann.save(update_fields=['content'])
|
||||
if file:
|
||||
ann.file = json.dumps(flies(file)) # 使用 flies 函数处理文件
|
||||
ann.save(update_fields=['file'])
|
||||
|
||||
ann.username = user
|
||||
ann.times = date_str
|
||||
|
||||
ann.save(update_fields=['username', 'times'])
|
||||
return Response({'message': '编辑成功', 'code': 0}, status=status.HTTP_200_OK)
|
||||
|
||||
class deleteSystem(APIView):
|
||||
def post(self, request, *args, **kwargs):
|
||||
ID = request.data.get('id')
|
||||
try:
|
||||
announcement = Announcement.objects.get(id=ID, is_deleted=False)
|
||||
# 软删除:更新 is_deleted 字段
|
||||
announcement.is_deleted = True
|
||||
announcement.save()
|
||||
return Response({'message': '删除成功', 'code': 0}, status=status.HTTP_200_OK)
|
||||
except Announcement.DoesNotExist:
|
||||
return Response({'status': 'error', 'message': '公告不存在', 'code': 1}, status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user