17 changed files with 768 additions and 1 deletions
@ -0,0 +1,3 @@ |
|||
from django.contrib import admin |
|||
|
|||
# Register your models here. |
|||
@ -0,0 +1,5 @@ |
|||
from django.apps import AppConfig |
|||
|
|||
|
|||
class ConnectorConfig(AppConfig): |
|||
name = 'connector' |
|||
@ -0,0 +1,42 @@ |
|||
# Generated by Django 3.1.4 on 2025-02-21 17:23 |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
initial = True |
|||
|
|||
dependencies = [ |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='Connection', |
|||
fields=[ |
|||
('id', models.AutoField(primary_key=True, serialize=False, verbose_name='主键')), |
|||
('type', models.IntegerField(help_text='1:数据库,2:API', verbose_name='连接类型')), |
|||
('host', models.CharField(max_length=255, verbose_name='地址')), |
|||
('port', models.IntegerField(verbose_name='端口')), |
|||
('username', models.CharField(max_length=255, verbose_name='用户名')), |
|||
('password', models.CharField(max_length=255, verbose_name='密码')), |
|||
('database_name', models.CharField(blank=True, max_length=255, null=True, verbose_name='数据库名称')), |
|||
('apiUrl', models.TextField(blank=True, null=True, verbose_name='APIURL')), |
|||
('authType', models.IntegerField(blank=True, help_text='1:Basic Authentication,2:Bearer Token,3:API Key', null=True, verbose_name='认证类型')), |
|||
('requestMethod', models.IntegerField(help_text='1:get,2:post', verbose_name='请求方法')), |
|||
('requestParams', models.JSONField(blank=True, null=True, verbose_name='请求参数')), |
|||
('companyMid', models.CharField(max_length=255, verbose_name='公司全局MainID')), |
|||
('CreateDateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), |
|||
('CreateByUid', models.IntegerField(blank=True, null=True, verbose_name='创建人ID')), |
|||
('CreateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='创建人')), |
|||
('UpdateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='更新人')), |
|||
('UpdateByUid', models.IntegerField(blank=True, null=True, verbose_name='更新人ID')), |
|||
('UpdateDateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')), |
|||
], |
|||
options={ |
|||
'verbose_name': '数据连接', |
|||
'verbose_name_plural': '数据连接', |
|||
'ordering': ['id'], |
|||
}, |
|||
), |
|||
] |
|||
@ -0,0 +1,33 @@ |
|||
from django.db import models |
|||
|
|||
|
|||
class Connection(models.Model): |
|||
id = models.AutoField(primary_key=True, verbose_name='主键') |
|||
type = models.IntegerField(verbose_name='连接类型', help_text='1:数据库,2:API') |
|||
host = models.CharField(max_length=255, verbose_name='地址') |
|||
port = models.IntegerField(verbose_name='端口') |
|||
username = models.CharField(max_length=255, verbose_name='用户名') |
|||
password = models.CharField(max_length=255, verbose_name='密码') # 建议加密存储 |
|||
database_name = models.CharField(max_length=255, null=True, blank=True, verbose_name='数据库名称') |
|||
apiUrl = models.TextField(null=True, blank=True, verbose_name='APIURL') |
|||
authType = models.IntegerField(null=True, blank=True, verbose_name='认证类型', |
|||
help_text='1:Basic Authentication,2:Bearer Token,3:API Key') # 例如: # Basic Authentication:使用用户名和密码进行简单的认证。 |
|||
# Bearer Token:使用访问令牌进行认证,通常用于 OAuth 2.0。 |
|||
# API Key:通过在请求头或 URL 中传递 API 密钥进行认证。 |
|||
requestMethod = models.IntegerField(verbose_name='请求方法', help_text='1:get,2:post') |
|||
requestParams = models.JSONField(null=True, blank=True, verbose_name='请求参数') |
|||
companyMid = models.CharField(max_length=255, verbose_name='公司全局MainID') |
|||
CreateDateTime = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') |
|||
CreateByUid = models.IntegerField(null=True, blank=True, verbose_name='创建人ID') |
|||
CreateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name='创建人') |
|||
UpdateBy = models.CharField(max_length=36, null=True, blank=True, verbose_name='更新人') |
|||
UpdateByUid = models.IntegerField(null=True, blank=True, verbose_name='更新人ID') |
|||
UpdateDateTime = models.DateTimeField(auto_now=True, blank=True, verbose_name='更新时间') |
|||
|
|||
class Meta: |
|||
verbose_name = '数据连接' |
|||
verbose_name_plural = verbose_name |
|||
ordering = ["id"] |
|||
|
|||
def __str__(self): |
|||
return self.id |
|||
@ -0,0 +1,4 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# @Author : Sherlock |
|||
# @Time : 2025/2/21 17:49 |
|||
# @Description : |
|||
@ -0,0 +1,11 @@ |
|||
# Created by Sherlock on 2025/2/21 17:49 |
|||
from rest_framework import serializers |
|||
from .models import Connection |
|||
|
|||
class ConnectionSerializer(serializers.ModelSerializer): |
|||
""" |
|||
数据连接 |
|||
""" |
|||
class Meta: |
|||
model = Connection |
|||
fields = "__all__" |
|||
@ -0,0 +1,3 @@ |
|||
from django.test import TestCase |
|||
|
|||
# Create your tests here. |
|||
@ -0,0 +1,12 @@ |
|||
from django.urls import path, include |
|||
from rbac.views import user, menu, role, permission, message, SubAccount, FrontRole, company |
|||
from rest_framework import routers |
|||
|
|||
from rbac.views.Slider_Verification import SliderVerification |
|||
|
|||
router = routers.SimpleRouter() |
|||
|
|||
|
|||
urlpatterns = [ |
|||
path(r"api/", include(router.urls)), |
|||
] |
|||
@ -0,0 +1,3 @@ |
|||
from django.shortcuts import render |
|||
|
|||
# Create your views here. |
|||
@ -0,0 +1,4 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# @Author : Sherlock |
|||
# @Time : 2025/2/21 17:53 |
|||
# @Description : |
|||
@ -0,0 +1,113 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# @Author : Sherlock |
|||
# @Time : 2025/2/21 17:53 |
|||
# @Description : 数据连接 |
|||
from rest_framework.permissions import IsAuthenticated |
|||
from rest_framework_jwt.authentication import JSONWebTokenAuthentication |
|||
from django_filters.rest_framework import DjangoFilterBackend |
|||
from rest_framework.decorators import action |
|||
from rest_framework.filters import SearchFilter, OrderingFilter |
|||
|
|||
|
|||
class ConnectorViewSet(CustomViewBase): |
|||
''' |
|||
字典详情树 |
|||
''' |
|||
perms_map = ( |
|||
{'*': 'admin'}, |
|||
{'*': 'connector_all'}, |
|||
{'get': 'connector_list'}, |
|||
{'post': 'connector_create'}, |
|||
{'put': 'connector_edit'}, |
|||
{'delete': 'connector_delete'} |
|||
) |
|||
queryset = Connection.objects.all() |
|||
serializer_class = ConnectionSerializer |
|||
filter_backends = (SearchFilter, OrderingFilter) |
|||
ordering_fields = ('id',) |
|||
authentication_classes = (JSONWebTokenAuthentication,) |
|||
permission_classes = (IsAuthenticated,) |
|||
|
|||
def list(self, request, *args, **kwargs): |
|||
''' |
|||
重写list方法 |
|||
''' |
|||
companyMid = request.GET.get("companyMid", None) |
|||
is_enabled = request.GET.get("is_enabled") |
|||
label = request.GET.get("label") |
|||
order = request.GET.get("order") |
|||
sort = request.GET.get("ordering") |
|||
order_by = 'id' |
|||
try: |
|||
|
|||
queryRows = Connection.objects.filter(companyMid=companyMid).order_by(order_by) |
|||
for item in queryRows: |
|||
item.__dict__.pop('_state') |
|||
results.append(item.__dict__) |
|||
result = [] |
|||
return CCAIResponse(results) |
|||
else: |
|||
logger.error("connector list failed: \n%s" % traceback.format_exc()) |
|||
return CCAIResponse(PARAMS_ERR, SERVER_ERROR) |
|||
|
|||
def create(self, request, *args, **kwargs): |
|||
'''添加数据POST''' |
|||
try: |
|||
data = req_operate_by_user(request) |
|||
# data['dict_detail_id'] = uuid.uuid4().__str__() |
|||
|
|||
serializer = self.get_serializer(data=data) |
|||
serializer.is_valid(raise_exception=True) |
|||
self.perform_create(serializer) |
|||
|
|||
|
|||
return CCAIResponse(data="success") |
|||
except Exception as e: |
|||
logger.error("connector create failed: \n%s" % traceback.format_exc()) |
|||
return CCAIResponse("connector create failed", SERVER_ERROR) |
|||
|
|||
def destroy(self, request, *args, **kwargs): |
|||
try: |
|||
instance = self.get_object() |
|||
# 查询是否存在关联 |
|||
queryRows = Connection.objects.filter(id=instance.id) |
|||
if len(queryRows > 0): |
|||
# return CCAIResponse("该数据存在关联,请先删除关联数据", BAD) |
|||
# is_association = self.check_association(deptId=instance.id) |
|||
# if is_association: |
|||
# return CCAIResponse(is_association, BAD) |
|||
self.perform_destroy(instance) |
|||
|
|||
return CCAIResponse(data="delete connector success") |
|||
else: |
|||
logger.error("connector id failed: \n%s" % traceback.format_exc()) |
|||
return CCAIResponse("delete connector id inexistence ", BAD) |
|||
except Exception as e: |
|||
logger.error("user: %s, delete dept failed: \n%s" % (request.user.id, traceback.format_exc())) |
|||
return CCAIResponse("delete dept failed", SERVER_ERROR) |
|||
|
|||
|
|||
def update(self, request, *args, **kwargs): |
|||
from rest_framework.exceptions import ValidationError |
|||
try: |
|||
companyMid = request.query_params.get('companyMid', None) |
|||
data = req_operate_by_user(request) |
|||
data['companyMid'] = companyMid |
|||
partial = kwargs.pop('partial', False) # True:所有字段全部更新, False:仅更新提供的字段 |
|||
instance = self.get_object() |
|||
|
|||
|
|||
serializer = self.get_serializer(instance, data=data, partial=partial) |
|||
serializer.is_valid(raise_exception=True) |
|||
self.perform_update(serializer) |
|||
|
|||
if getattr(instance, '_prefetched_objects_cache', None): |
|||
# If 'prefetch_related' has been applied to a queryset, we need to |
|||
# forcibly invalidate the prefetch cache on the instance. |
|||
instance._prefetched_objects_cache = {} |
|||
return CCAIResponse(data="success") |
|||
|
|||
except Exception as e: |
|||
logger.error("user: %s, update connector failed: \n%s" % (request.user.id, traceback.format_exc())) |
|||
return CCAIResponse("update dept failed", SERVER_ERROR) |
|||
|
|||
@ -0,0 +1,83 @@ |
|||
# Generated by Django 3.1.4 on 2025-02-21 17:23 |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('rbac', '0001_initial'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AddField( |
|||
model_name='company', |
|||
name='AmEnd', |
|||
field=models.CharField(blank=True, default='12:00', help_text='早班结束时间', max_length=10, null=True, verbose_name='早班结束时间'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='company', |
|||
name='AmStart', |
|||
field=models.CharField(blank=True, default='8:00', help_text='早班起始时间', max_length=10, null=True, verbose_name='早班起始时间'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='company', |
|||
name='PmEnd', |
|||
field=models.CharField(blank=True, default='18:00', help_text='午班结束时间', max_length=10, null=True, verbose_name='午班结束时间'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='company', |
|||
name='PmStart', |
|||
field=models.CharField(blank=True, default='14:00', help_text='午班起始时间', max_length=10, null=True, verbose_name='午班起始时间'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='company', |
|||
name='checkIn', |
|||
field=models.IntegerField(default=0, help_text='打卡方案,0-原方案, 1-新方案(细颗粒度)', verbose_name='打卡方案,0-原方案, 1-新方案(细颗粒度)'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='company', |
|||
name='hightechDate', |
|||
field=models.DateField(blank=True, help_text='获取高企时间', null=True, verbose_name='获取高企时间'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='company', |
|||
name='tech', |
|||
field=models.CharField(blank=True, help_text='技术领域id', max_length=200, null=True, verbose_name='技术领域id'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='company', |
|||
name='tolerance', |
|||
field=models.IntegerField(default=900, help_text='打卡容错时间,单位s, 默认900s=15min', verbose_name='打卡容错时间,单位s, 默认900s=15min'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='menu', |
|||
name='label', |
|||
field=models.IntegerField(default=1, verbose_name='是否前台菜单 # 1:是 2:不是'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='permission', |
|||
name='label', |
|||
field=models.IntegerField(default=1, verbose_name='是否前台权限 # 1:是 2:不是'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='role', |
|||
name='label', |
|||
field=models.IntegerField(default=1, verbose_name='是否前台角色 # 1:是 2:不是'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='userprofile', |
|||
name='label', |
|||
field=models.IntegerField(default=1, verbose_name='是否前台用户 # 1:是 2:不是'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='userprofile', |
|||
name='image', |
|||
field=models.CharField(default='/image/default.png', max_length=100, verbose_name='头像'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='userprofile', |
|||
name='is_staff', |
|||
field=models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status'), |
|||
), |
|||
] |
|||
@ -0,0 +1,421 @@ |
|||
# Generated by Django 3.1.4 on 2025-02-21 17:23 |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('staff', '0001_initial'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='AccruedAccumulation', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('staffId', models.IntegerField(blank=True, help_text='员工id', null=True, verbose_name='员工id')), |
|||
('date', models.DateField(blank=True, help_text='薪资入账年月 # 2024-01', null=True, verbose_name='薪资入账年月')), |
|||
('startDate', models.DateField(blank=True, help_text='薪资费用发生开始年月 # 2024-01', null=True, verbose_name='薪资费用发生开始年月')), |
|||
('endDate', models.DateField(blank=True, help_text='薪资费用发生结束年月 # 2024-01', null=True, verbose_name='薪资费用发生结束年月')), |
|||
('amount', models.DecimalField(blank=True, decimal_places=2, default=0, help_text='金额', max_digits=18, verbose_name='金额')), |
|||
('subjectId', models.IntegerField(blank=True, help_text='对应科目id', null=True, verbose_name='对应科目id')), |
|||
('status', models.IntegerField(blank=True, default=0, help_text='状态 # 0:未审核 1:已审核保存 1+:已添加凭证', null=True, verbose_name='状态')), |
|||
('attendanceStatus', models.BooleanField(default=0, help_text='考勤状态是否完成,0-未完成', verbose_name='考勤状态是否完成,0-未完成')), |
|||
('CreateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='创建人')), |
|||
('UpdateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='更新人')), |
|||
('CreateByUid', models.IntegerField(blank=True, null=True, verbose_name='创建人ID')), |
|||
('UpdateByUid', models.IntegerField(blank=True, null=True, verbose_name='更新人ID')), |
|||
('CreateDateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), |
|||
('UpdateDateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')), |
|||
('companyMid', models.CharField(blank=True, max_length=36, null=True, verbose_name='公司全局id')), |
|||
], |
|||
options={ |
|||
'verbose_name': '公积金记录', |
|||
'verbose_name_plural': '公积金记录', |
|||
'db_table': 'staff_accrued_accumulation', |
|||
'ordering': ['id'], |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='AccruedBonus', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('staffId', models.IntegerField(blank=True, help_text='员工id', null=True, verbose_name='员工id')), |
|||
('date', models.DateField(blank=True, help_text='薪资入账年月 # 2024-01', null=True, verbose_name='薪资入账年月')), |
|||
('startDate', models.DateField(blank=True, help_text='薪资费用发生开始年月 # 2024-01', null=True, verbose_name='薪资费用发生开始年月')), |
|||
('endDate', models.DateField(blank=True, help_text='薪资费用发生结束年月 # 2024-01', null=True, verbose_name='薪资费用发生结束年月')), |
|||
('amount', models.DecimalField(blank=True, decimal_places=2, help_text='金额', max_digits=18, null=True, verbose_name='金额')), |
|||
('subjectId', models.IntegerField(blank=True, help_text='对应科目id', null=True, verbose_name='对应科目id')), |
|||
('status', models.IntegerField(blank=True, default=0, help_text='状态 # 0:未审核 1:已审核保存 1+:已添加凭证', null=True, verbose_name='状态')), |
|||
('attendanceStatus', models.BooleanField(default=0, help_text='考勤状态是否完成,0-未完成', verbose_name='考勤状态是否完成,0-未完成')), |
|||
('remark', models.CharField(blank=True, help_text='备注信息', max_length=200, null=True, verbose_name='备注信息')), |
|||
('CreateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='创建人')), |
|||
('UpdateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='更新人')), |
|||
('CreateByUid', models.IntegerField(blank=True, null=True, verbose_name='创建人ID')), |
|||
('UpdateByUid', models.IntegerField(blank=True, null=True, verbose_name='更新人ID')), |
|||
('CreateDateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), |
|||
('UpdateDateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')), |
|||
('companyMid', models.CharField(blank=True, max_length=36, null=True, verbose_name='公司全局id')), |
|||
], |
|||
options={ |
|||
'verbose_name': '奖金管理', |
|||
'verbose_name_plural': '奖金管理', |
|||
'db_table': 'staff_accrued_bonus', |
|||
'ordering': ['id'], |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='AccruedSocialInsurance', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('staffId', models.IntegerField(blank=True, help_text='员工id', null=True, verbose_name='员工id')), |
|||
('date', models.DateField(blank=True, help_text='薪资入账年月 # 2024-01', null=True, verbose_name='薪资入账年月')), |
|||
('startDate', models.DateField(blank=True, help_text='薪资费用发生开始年月 # 2024-01', null=True, verbose_name='薪资费用发生开始年月')), |
|||
('endDate', models.DateField(blank=True, help_text='薪资费用发生结束年月 # 2024-01', null=True, verbose_name='薪资费用发生结束年月')), |
|||
('amount', models.DecimalField(blank=True, decimal_places=2, default=0, help_text='金额', max_digits=18, verbose_name='金额')), |
|||
('subjectId', models.IntegerField(blank=True, help_text='对应科目id', null=True, verbose_name='对应科目id')), |
|||
('status', models.IntegerField(blank=True, default=0, help_text='状态 # 0:未审核 1:已审核保存 1+:已添加凭证', null=True, verbose_name='状态')), |
|||
('attendanceStatus', models.BooleanField(default=0, help_text='考勤状态是否完成,0-未完成', verbose_name='考勤状态是否完成,0-未完成')), |
|||
('CreateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='创建人')), |
|||
('UpdateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='更新人')), |
|||
('CreateByUid', models.IntegerField(blank=True, null=True, verbose_name='创建人ID')), |
|||
('UpdateByUid', models.IntegerField(blank=True, null=True, verbose_name='更新人ID')), |
|||
('CreateDateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), |
|||
('UpdateDateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')), |
|||
('companyMid', models.CharField(blank=True, max_length=36, null=True, verbose_name='公司全局id')), |
|||
], |
|||
options={ |
|||
'verbose_name': '社保记录', |
|||
'verbose_name_plural': '社保记录', |
|||
'db_table': 'staff_accrued_social_insurance', |
|||
'ordering': ['id'], |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='AccruedWages', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('staffId', models.IntegerField(blank=True, help_text='员工id', null=True, verbose_name='员工id')), |
|||
('date', models.DateField(blank=True, help_text='薪资入账年月 # 2024-01', null=True, verbose_name='薪资入账年月')), |
|||
('startDate', models.DateField(blank=True, help_text='薪资费用发生开始年月 # 2024-01', null=True, verbose_name='薪资费用发生开始年月')), |
|||
('endDate', models.DateField(blank=True, help_text='薪资费用发生结束年月 # 2024-01', null=True, verbose_name='薪资费用发生结束年月')), |
|||
('amount', models.DecimalField(blank=True, decimal_places=2, default=0, help_text='工资', max_digits=18, verbose_name='工资')), |
|||
('subjectId', models.IntegerField(blank=True, help_text='对应科目id', null=True, verbose_name='对应科目id')), |
|||
('status', models.IntegerField(blank=True, default=0, help_text='状态 # 0:未审核 1:已审核保存 1+:已添加凭证', null=True, verbose_name='状态')), |
|||
('attendanceStatus', models.BooleanField(default=0, help_text='考勤状态是否完成,0-未完成', verbose_name='考勤状态是否完成,0-未完成')), |
|||
('CreateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='创建人')), |
|||
('UpdateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='更新人')), |
|||
('CreateByUid', models.IntegerField(blank=True, null=True, verbose_name='创建人ID')), |
|||
('UpdateByUid', models.IntegerField(blank=True, null=True, verbose_name='更新人ID')), |
|||
('CreateDateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), |
|||
('UpdateDateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')), |
|||
('companyMid', models.CharField(blank=True, max_length=36, null=True, verbose_name='公司全局id')), |
|||
], |
|||
options={ |
|||
'verbose_name': '工资记录', |
|||
'verbose_name_plural': '工资记录', |
|||
'db_table': 'staff_accrued_wages', |
|||
'ordering': ['id'], |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='AccruedWelfare', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('staffId', models.IntegerField(blank=True, help_text='员工id', null=True, verbose_name='员工id')), |
|||
('date', models.DateField(blank=True, help_text='薪资入账年月 # 2024-01', null=True, verbose_name='薪资入账年月')), |
|||
('startDate', models.DateField(blank=True, help_text='薪资费用发生开始年月 # 2024-01', null=True, verbose_name='薪资费用发生开始年月')), |
|||
('endDate', models.DateField(blank=True, help_text='薪资费用发生结束年月 # 2024-01', null=True, verbose_name='薪资费用发生结束年月')), |
|||
('amount', models.DecimalField(blank=True, decimal_places=2, help_text='金额', max_digits=18, null=True, verbose_name='金额')), |
|||
('subjectId', models.IntegerField(blank=True, help_text='对应科目id', null=True, verbose_name='对应科目id')), |
|||
('status', models.IntegerField(blank=True, default=0, help_text='状态 # 0:未审核 1:已审核保存 1+:已添加凭证', null=True, verbose_name='状态')), |
|||
('attendanceStatus', models.BooleanField(default=0, help_text='考勤状态是否完成,0-未完成', verbose_name='考勤状态是否完成,0-未完成')), |
|||
('remark', models.CharField(blank=True, help_text='备注信息', max_length=200, null=True, verbose_name='备注信息')), |
|||
('CreateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='创建人')), |
|||
('UpdateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='更新人')), |
|||
('CreateByUid', models.IntegerField(blank=True, null=True, verbose_name='创建人ID')), |
|||
('UpdateByUid', models.IntegerField(blank=True, null=True, verbose_name='更新人ID')), |
|||
('CreateDateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), |
|||
('UpdateDateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')), |
|||
('companyMid', models.CharField(blank=True, max_length=36, null=True, verbose_name='公司全局id')), |
|||
], |
|||
options={ |
|||
'verbose_name': '福利管理', |
|||
'verbose_name_plural': '福利管理', |
|||
'db_table': 'staff_accrued_welfare', |
|||
'ordering': ['id'], |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='Accumulation', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('staffId', models.IntegerField(blank=True, help_text='员工id', null=True, verbose_name='员工id')), |
|||
('date', models.DateField(blank=True, help_text='薪资入账年月 # 2024-01', null=True, verbose_name='薪资入账年月')), |
|||
('startDate', models.DateField(blank=True, help_text='薪资费用发生开始年月 # 2024-01', null=True, verbose_name='薪资费用发生开始年月')), |
|||
('endDate', models.DateField(blank=True, help_text='薪资费用发生结束年月 # 2024-01', null=True, verbose_name='薪资费用发生结束年月')), |
|||
('amount', models.DecimalField(blank=True, decimal_places=2, default=0, help_text='金额', max_digits=18, verbose_name='金额')), |
|||
('subjectId', models.IntegerField(blank=True, help_text='对应科目id', null=True, verbose_name='对应科目id')), |
|||
('status', models.IntegerField(blank=True, default=0, help_text='状态 # 0:未审核 1:已审核保存 1+:已添加凭证', null=True, verbose_name='状态')), |
|||
('attendanceStatus', models.BooleanField(default=0, help_text='考勤状态是否完成,0-未完成', verbose_name='考勤状态是否完成,0-未完成')), |
|||
('CreateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='创建人')), |
|||
('UpdateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='更新人')), |
|||
('CreateByUid', models.IntegerField(blank=True, null=True, verbose_name='创建人ID')), |
|||
('UpdateByUid', models.IntegerField(blank=True, null=True, verbose_name='更新人ID')), |
|||
('CreateDateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), |
|||
('UpdateDateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')), |
|||
('companyMid', models.CharField(blank=True, max_length=36, null=True, verbose_name='公司全局id')), |
|||
], |
|||
options={ |
|||
'verbose_name': '公积金记录', |
|||
'verbose_name_plural': '公积金记录', |
|||
'db_table': 'staff_accumulation', |
|||
'ordering': ['id'], |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='Bonus', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('staffId', models.IntegerField(blank=True, help_text='员工id', null=True, verbose_name='员工id')), |
|||
('date', models.DateField(blank=True, help_text='薪资入账年月 # 2024-01', null=True, verbose_name='薪资入账年月')), |
|||
('startDate', models.DateField(blank=True, help_text='薪资费用发生开始年月 # 2024-01', null=True, verbose_name='薪资费用发生开始年月')), |
|||
('endDate', models.DateField(blank=True, help_text='薪资费用发生结束年月 # 2024-01', null=True, verbose_name='薪资费用发生结束年月')), |
|||
('amount', models.DecimalField(blank=True, decimal_places=2, help_text='金额', max_digits=18, null=True, verbose_name='金额')), |
|||
('subjectId', models.IntegerField(blank=True, help_text='对应科目id', null=True, verbose_name='对应科目id')), |
|||
('status', models.IntegerField(blank=True, default=0, help_text='状态 # 0:未审核 1:已审核保存 1+:已添加凭证', null=True, verbose_name='状态')), |
|||
('attendanceStatus', models.BooleanField(default=0, help_text='考勤状态是否完成,0-未完成', verbose_name='考勤状态是否完成,0-未完成')), |
|||
('remark', models.CharField(blank=True, help_text='备注信息', max_length=200, null=True, verbose_name='备注信息')), |
|||
('CreateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='创建人')), |
|||
('UpdateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='更新人')), |
|||
('CreateByUid', models.IntegerField(blank=True, null=True, verbose_name='创建人ID')), |
|||
('UpdateByUid', models.IntegerField(blank=True, null=True, verbose_name='更新人ID')), |
|||
('CreateDateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), |
|||
('UpdateDateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')), |
|||
('companyMid', models.CharField(blank=True, max_length=36, null=True, verbose_name='公司全局id')), |
|||
], |
|||
options={ |
|||
'verbose_name': '奖金管理', |
|||
'verbose_name_plural': '奖金管理', |
|||
'db_table': 'staff_bonus', |
|||
'ordering': ['id'], |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='SocialInsurance', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('staffId', models.IntegerField(blank=True, help_text='员工id', null=True, verbose_name='员工id')), |
|||
('date', models.DateField(blank=True, help_text='薪资入账年月 # 2024-01', null=True, verbose_name='薪资入账年月')), |
|||
('startDate', models.DateField(blank=True, help_text='薪资费用发生开始年月 # 2024-01', null=True, verbose_name='薪资费用发生开始年月')), |
|||
('endDate', models.DateField(blank=True, help_text='薪资费用发生结束年月 # 2024-01', null=True, verbose_name='薪资费用发生结束年月')), |
|||
('amount', models.DecimalField(blank=True, decimal_places=2, default=0, help_text='金额', max_digits=18, verbose_name='金额')), |
|||
('subjectId', models.IntegerField(blank=True, help_text='对应科目id', null=True, verbose_name='对应科目id')), |
|||
('status', models.IntegerField(blank=True, default=0, help_text='状态 # 0:未审核 1:已审核保存 1+:已添加凭证', null=True, verbose_name='状态')), |
|||
('attendanceStatus', models.BooleanField(default=0, help_text='考勤状态是否完成,0-未完成', verbose_name='考勤状态是否完成,0-未完成')), |
|||
('CreateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='创建人')), |
|||
('UpdateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='更新人')), |
|||
('CreateByUid', models.IntegerField(blank=True, null=True, verbose_name='创建人ID')), |
|||
('UpdateByUid', models.IntegerField(blank=True, null=True, verbose_name='更新人ID')), |
|||
('CreateDateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), |
|||
('UpdateDateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')), |
|||
('companyMid', models.CharField(blank=True, max_length=36, null=True, verbose_name='公司全局id')), |
|||
], |
|||
options={ |
|||
'verbose_name': '社保记录', |
|||
'verbose_name_plural': '社保记录', |
|||
'db_table': 'staff_social_insurance', |
|||
'ordering': ['id'], |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='Wages', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('staffId', models.IntegerField(blank=True, help_text='员工id', null=True, verbose_name='员工id')), |
|||
('date', models.DateField(blank=True, help_text='薪资入账年月 # 2024-01', null=True, verbose_name='薪资入账年月')), |
|||
('startDate', models.DateField(blank=True, help_text='薪资费用发生开始年月 # 2024-01', null=True, verbose_name='薪资费用发生开始年月')), |
|||
('endDate', models.DateField(blank=True, help_text='薪资费用发生结束年月 # 2024-01', null=True, verbose_name='薪资费用发生结束年月')), |
|||
('amount', models.DecimalField(blank=True, decimal_places=2, default=0, help_text='工资', max_digits=18, verbose_name='工资')), |
|||
('subjectId', models.IntegerField(blank=True, help_text='对应科目id', null=True, verbose_name='对应科目id')), |
|||
('status', models.IntegerField(blank=True, default=0, help_text='状态 # 0:未审核 1:已审核保存 1+:已添加凭证', null=True, verbose_name='状态')), |
|||
('attendanceStatus', models.BooleanField(default=0, help_text='考勤状态是否完成,0-未完成', verbose_name='考勤状态是否完成,0-未完成')), |
|||
('CreateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='创建人')), |
|||
('UpdateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='更新人')), |
|||
('CreateByUid', models.IntegerField(blank=True, null=True, verbose_name='创建人ID')), |
|||
('UpdateByUid', models.IntegerField(blank=True, null=True, verbose_name='更新人ID')), |
|||
('CreateDateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), |
|||
('UpdateDateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')), |
|||
('companyMid', models.CharField(blank=True, max_length=36, null=True, verbose_name='公司全局id')), |
|||
], |
|||
options={ |
|||
'verbose_name': '工资记录', |
|||
'verbose_name_plural': '工资记录', |
|||
'db_table': 'staff_wages', |
|||
'ordering': ['id'], |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='Welfare', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('staffId', models.IntegerField(blank=True, help_text='员工id', null=True, verbose_name='员工id')), |
|||
('date', models.DateField(blank=True, help_text='薪资入账年月 # 2024-01', null=True, verbose_name='薪资入账年月')), |
|||
('startDate', models.DateField(blank=True, help_text='薪资费用发生开始年月 # 2024-01', null=True, verbose_name='薪资费用发生开始年月')), |
|||
('endDate', models.DateField(blank=True, help_text='薪资费用发生结束年月 # 2024-01', null=True, verbose_name='薪资费用发生结束年月')), |
|||
('amount', models.DecimalField(blank=True, decimal_places=2, help_text='金额', max_digits=18, null=True, verbose_name='金额')), |
|||
('subjectId', models.IntegerField(blank=True, help_text='对应科目id', null=True, verbose_name='对应科目id')), |
|||
('status', models.IntegerField(blank=True, default=0, help_text='状态 # 0:未审核 1:已审核保存 1+:已添加凭证', null=True, verbose_name='状态')), |
|||
('attendanceStatus', models.BooleanField(default=0, help_text='考勤状态是否完成,0-未完成', verbose_name='考勤状态是否完成,0-未完成')), |
|||
('remark', models.CharField(blank=True, help_text='备注信息', max_length=200, null=True, verbose_name='备注信息')), |
|||
('CreateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='创建人')), |
|||
('UpdateBy', models.CharField(blank=True, max_length=36, null=True, verbose_name='更新人')), |
|||
('CreateByUid', models.IntegerField(blank=True, null=True, verbose_name='创建人ID')), |
|||
('UpdateByUid', models.IntegerField(blank=True, null=True, verbose_name='更新人ID')), |
|||
('CreateDateTime', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')), |
|||
('UpdateDateTime', models.DateTimeField(auto_now=True, verbose_name='更新时间')), |
|||
('companyMid', models.CharField(blank=True, max_length=36, null=True, verbose_name='公司全局id')), |
|||
], |
|||
options={ |
|||
'verbose_name': '福利管理', |
|||
'verbose_name_plural': '福利管理', |
|||
'db_table': 'staff_welfare', |
|||
'ordering': ['id'], |
|||
}, |
|||
), |
|||
migrations.RemoveField( |
|||
model_name='salary', |
|||
name='type', |
|||
), |
|||
migrations.AddField( |
|||
model_name='accrued', |
|||
name='accumulation', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=0, help_text='公积金', max_digits=18, verbose_name='公积金'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='accrued', |
|||
name='attendanceStatus', |
|||
field=models.BooleanField(default=0, help_text='考勤状态是否完成,0-未完成', verbose_name='考勤状态是否完成,0-未完成'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='accrued', |
|||
name='endowment', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=0, help_text='养老', max_digits=18, verbose_name='养老'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='accrued', |
|||
name='illness', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=0, help_text='大病医疗', max_digits=18, verbose_name='大病医疗'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='accrued', |
|||
name='maternity', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=0, help_text='生育', max_digits=18, verbose_name='生育'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='accrued', |
|||
name='medical', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=0, help_text='医疗', max_digits=18, verbose_name='医疗'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='accrued', |
|||
name='unemployment', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=0, help_text='失业', max_digits=18, verbose_name='失业'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='accrued', |
|||
name='workInjury', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=0, help_text='工伤', max_digits=18, verbose_name='工伤'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='reward', |
|||
name='attendanceStatus', |
|||
field=models.BooleanField(default=False, help_text='是否完成对应时间的考勤,0-未完成', verbose_name='是否完成对应时间的考勤,0-未完成'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='salary', |
|||
name='attendanceStatus', |
|||
field=models.BooleanField(default=0, help_text='考勤状态是否完成,0-未完成', verbose_name='考勤状态是否完成,0-未完成'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='staff', |
|||
name='graduationSchool', |
|||
field=models.CharField(blank=True, max_length=200, null=True, verbose_name='毕业院校'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='staff', |
|||
name='personalHonor', |
|||
field=models.CharField(blank=True, max_length=200, null=True, verbose_name='个人荣誉'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='staff', |
|||
name='professionalCertificate', |
|||
field=models.CharField(blank=True, max_length=200, null=True, verbose_name='专业证书'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='staff', |
|||
name='talentQualification', |
|||
field=models.CharField(blank=True, help_text='1.国家高层次人才 2.地方高层次人才 3.区高层次人才', max_length=10, null=True, verbose_name='人才资质'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='accrued', |
|||
name='accruedType', |
|||
field=models.IntegerField(blank=True, help_text='预提类型 # (1:工资&社保公积金,2:奖金,3:福利)', null=True, verbose_name='预提类型'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='attendance', |
|||
name='status', |
|||
field=models.IntegerField(blank=True, default=0, help_text='状态 # 0:未审核 1:已审核保存 1+:已添加凭证(已记账)', null=True, verbose_name='状态'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='salary', |
|||
name='accumulation', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=0, help_text='公积金', max_digits=18, verbose_name='公积金'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='salary', |
|||
name='endowment', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=0, help_text='养老', max_digits=18, verbose_name='养老'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='salary', |
|||
name='illness', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=0, help_text='大病医疗', max_digits=18, verbose_name='大病医疗'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='salary', |
|||
name='maternity', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=0, help_text='生育', max_digits=18, verbose_name='生育'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='salary', |
|||
name='medical', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=0, help_text='医疗', max_digits=18, verbose_name='医疗'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='salary', |
|||
name='salaryAmount', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=0, help_text='工资', max_digits=18, verbose_name='工资'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='salary', |
|||
name='status', |
|||
field=models.IntegerField(blank=True, default=0, help_text='状态 # 0:未审核 1:已审核保存 1+:已添加凭证', null=True, verbose_name='状态'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='salary', |
|||
name='unemployment', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=0, help_text='失业', max_digits=18, verbose_name='失业'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='salary', |
|||
name='workInjury', |
|||
field=models.DecimalField(blank=True, decimal_places=2, default=0, help_text='工伤', max_digits=18, verbose_name='工伤'), |
|||
), |
|||
migrations.AlterField( |
|||
model_name='staff', |
|||
name='education', |
|||
field=models.IntegerField(blank=True, help_text='学历 # 1.高中(中专)及以下 2.大专 3.本科 4.硕士 5.博士', null=True, verbose_name='学历'), |
|||
), |
|||
] |
|||
@ -0,0 +1,29 @@ |
|||
# Generated by Django 3.1.4 on 2025-02-21 17:23 |
|||
|
|||
from django.db import migrations, models |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
initial = True |
|||
|
|||
dependencies = [ |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='TasksConsloe', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('task', models.CharField(blank=True, max_length=500, null=True, verbose_name='任务')), |
|||
('content', models.CharField(blank=True, max_length=500, null=True, verbose_name='内容')), |
|||
('start_time', models.DateTimeField(auto_now_add=True, verbose_name='执行时间')), |
|||
('finish_time', models.DateTimeField(auto_now_add=True, verbose_name='结束时间')), |
|||
], |
|||
options={ |
|||
'verbose_name': '任务输出', |
|||
'verbose_name_plural': '任务输出', |
|||
'ordering': ['id'], |
|||
}, |
|||
), |
|||
] |
|||
Loading…
Reference in new issue