-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 点击上传
-
-
-
-
-
- 保存
- 重置
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 点击上传
+
+
+
+
+
+ 保存
+ 保存并继续单元划分
+ 重置
+
+
+
+
\ No newline at end of file
+
diff --git a/server/apps/crm/migrations/0006_auto_20200706_1048.py b/server/apps/crm/migrations/0006_auto_20200706_1048.py
new file mode 100644
index 0000000..b451b9d
--- /dev/null
+++ b/server/apps/crm/migrations/0006_auto_20200706_1048.py
@@ -0,0 +1,76 @@
+# Generated by Django 3.0.5 on 2020-07-06 02:48
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ migrations.swappable_dependency(settings.AUTH_USER_MODEL),
+ ('system', '0021_auto_20200616_1722'),
+ ('crm', '0005_auto_20200701_1505'),
+ ]
+
+ operations = [
+ migrations.RemoveField(
+ model_name='enterprise',
+ name='mailing_address',
+ ),
+ migrations.RemoveField(
+ model_name='enterprise',
+ name='mailing_code',
+ ),
+ migrations.RemoveField(
+ model_name='enterprise',
+ name='mailing_eaddress',
+ ),
+ migrations.RemoveField(
+ model_name='enterprise',
+ name='production_address',
+ ),
+ migrations.RemoveField(
+ model_name='enterprise',
+ name='production_eaddress',
+ ),
+ migrations.RemoveField(
+ model_name='enterprise',
+ name='production_postcode',
+ ),
+ migrations.RemoveField(
+ model_name='enterprise',
+ name='registered_address',
+ ),
+ migrations.RemoveField(
+ model_name='enterprise',
+ name='registered_code',
+ ),
+ migrations.RemoveField(
+ model_name='enterprise',
+ name='registered_eaddress',
+ ),
+ migrations.CreateModel(
+ name='EnterpriseAddress',
+ fields=[
+ ('id', models.AutoField(auto_created=True, 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='删除标记')),
+ ('address', models.CharField(blank=True, max_length=1000, null=True, verbose_name='地址名称')),
+ ('eaddress', models.CharField(blank=True, max_length=1000, null=True, verbose_name='地址英文名称')),
+ ('code', models.CharField(blank=True, max_length=1000, null=True, verbose_name='地址邮编邮编')),
+ ('type', models.CharField(choices=[('2', '注册地址'), ('1', '通信地址'), ('0', '生产地址')], default='生产地址', max_length=50, verbose_name='地址类型')),
+ ('country_code', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='enterpriseaddress_country_code', to='system.Dict', verbose_name='国家代码')),
+ ('county_code', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='enterpriseaddress_county_code', to='system.Dict', verbose_name='县/区代码')),
+ ('create_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='enterpriseaddress_create_by', to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
+ ('enterprise', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='enterpriseaddress_enterprise', to='crm.Enterprise', verbose_name='地址属性')),
+ ('provinceCode', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='enterpriseaddress_provinceCode', to='system.Dict', verbose_name='省代码')),
+ ('update_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='enterpriseaddress_update_by', to=settings.AUTH_USER_MODEL, verbose_name='最后编辑人')),
+ ],
+ options={
+ 'abstract': False,
+ },
+ ),
+ ]
diff --git a/server/apps/crm/models.py b/server/apps/crm/models.py
index 7cc5f80..204cfc1 100644
--- a/server/apps/crm/models.py
+++ b/server/apps/crm/models.py
@@ -1,5 +1,5 @@
from django.db import models
-from apps.system.models import CommonBModel, Dict
+from apps.system.models import CommonBModel,CommonAModel,Dict
from simple_history.models import HistoricalRecords
import uuid
# Create your models here.
@@ -27,20 +27,7 @@ class Enterprise(CommonBModel):
linkman2_fax = models.CharField('备用联系人传真',max_length=300,null=True, blank=True)
country_code = models.ForeignKey(Dict, on_delete=models.SET_NULL,null=True, blank=True,verbose_name='生产企业所在国家地区代码', related_name= 'enterprise_country_code')
credit_code = models.CharField('统一社会信用代码',max_length=300,null=True, blank=True)
- registered_address = models.CharField('注册地址',max_length=1000,null=True, blank=True)
- registered_eaddress = models.CharField('注册地址英文',max_length=1000,null=True, blank=True)
- registered_code = models.CharField('注册地址邮编',max_length=1000,null=True, blank=True)
- production_address = models.CharField('生产地址',null=True, blank=True,max_length=1000)
- production_eaddress = models.CharField('生产英文地址',null=True, blank=True,max_length=1000)
- production_postcode = models.CharField('生产地址邮编',null=True, blank=True,max_length=100)
- mailing_address = models.CharField('通信地址',max_length=1000,null=True, blank=True)
- mailing_eaddress = models.CharField('通信英文地址',max_length=1000,null=True, blank=True)
- mailing_code = models.CharField('地址邮编',max_length=300,null=True, blank=True)
region_code = models.ForeignKey(Dict, on_delete=models.SET_NULL,verbose_name='县/区',null=True, blank=True, related_name= 'enterprise_region_code1')
- # status = models.CharField('是否受理',null=True, blank=True, max_length=1000)
- # bak1 = models.CharField('',null=True, blank=True, max_length=1000)
- # bak2 = models.CharField('',null=True, blank=True, max_length=1000)
- # bak3 = models.CharField('',null=True, blank=True, max_length=1000)
professional = models.ForeignKey(Dict, on_delete=models.SET_NULL,verbose_name='所属专业',null=True, blank=True, related_name= 'enterprise_professional')
qms_person = models.IntegerField('QMS人数',null=True, blank=True)
ems_person = models.IntegerField('EMS人数',null=True, blank=True)
@@ -69,12 +56,23 @@ class Enterprise(CommonBModel):
def __str__(self):
return self.name
class EnterpriseAddress(CommonAModel):
- EnterpriseFid = models.ForeignKey(Enterprise, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='地址属性', related_name='enterpriseaddress_ enterpriseFid')
+ type_choices = (
+ ('注册地址', '注册地址'),
+ ('通信地址', '通信地址'),
+ ('生产地址', '生产地址')
+ )
+ enterprise= models.ForeignKey(Enterprise, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='地址属性', related_name='enterpriseaddress_enterprise')
address = models.CharField('地址名称',max_length=1000,null=True, blank=True)
eaddress = models.CharField('地址英文名称',max_length=1000,null=True, blank=True)
- code = models.CharField('地址邮编邮编',max_length=1000,null=True, blank=True)
- type = models.CharField('地址属性',max_length=1000,null=True, blank=True)
+ code = models.CharField('地址邮编',max_length=1000,null=True, blank=True)
+ type = models.CharField('地址类型', max_length=50,choices=type_choices, default='生产地址')
county_code = models.ForeignKey(Dict, on_delete=models.SET_NULL,verbose_name='县/区代码',null=True, blank=True, related_name= 'enterpriseaddress_county_code')
country_code = models.ForeignKey(Dict, on_delete=models.SET_NULL,verbose_name='国家代码',null=True, blank=True, related_name= 'enterpriseaddress_country_code')
provinceCode = models.ForeignKey(Dict, on_delete=models.SET_NULL,verbose_name='省代码',null=True, blank=True, related_name= 'enterpriseaddress_provinceCode')
+ class Meta:
+ verbose_name = '组织地址'
+ verbose_name_plural = verbose_name
+
+ def __str__(self):
+ return self.name
diff --git a/server/apps/crm/serializers.py b/server/apps/crm/serializers.py
index ece5c33..019b4ec 100644
--- a/server/apps/crm/serializers.py
+++ b/server/apps/crm/serializers.py
@@ -1,6 +1,6 @@
from rest_framework import serializers
-from .models import Enterprise
+from .models import Enterprise,EnterpriseAddress
from apps.system.serializers import DictSerializer
@@ -13,7 +13,7 @@ class EnterpriseListSerializer(serializers.ModelSerializer):
economy_class = DictSerializer()
class Meta:
model = Enterprise
- fields = ['id','query_code', 'code','fid', 'name','ename','type','legal','production_address','production_eaddress','production_postcode','build_time','person_count','ceramics_output','gassets','linkman1_name','linkman1_tel','linkman1_mobile','country_code','credit_code','professional','all_person','economy_class','economy_type','linkman1_duty','business_type']
+ fields = ['id','query_code', 'code', 'name','ename','type','legal','build_time','person_count','ceramics_output','gassets','linkman1_name','linkman1_tel','linkman1_mobile','country_code','credit_code','professional','all_person','economy_class','economy_type','linkman1_duty','business_type']
@staticmethod
def setup_eager_loading(queryset):
""" Perform necessary eager loading of data. """
@@ -21,4 +21,11 @@ class EnterpriseListSerializer(serializers.ModelSerializer):
return queryset
def get_cert_type(self, obj):
- return obj.get_cert_type_display()
\ No newline at end of file
+ return obj.get_cert_type_display()
+class EnterpriseAddressSerializer(serializers.ModelSerializer):
+ class Meta:
+ model = EnterpriseAddress
+ fields = '__all__'
+
+
+
\ No newline at end of file
diff --git a/server/apps/crm/urls.py b/server/apps/crm/urls.py
index 69648e6..03ad287 100644
--- a/server/apps/crm/urls.py
+++ b/server/apps/crm/urls.py
@@ -1,9 +1,10 @@
from django.urls import path, include
-from .views import EnterpriseViewSet
+from .views import EnterpriseViewSet,EnterpriseAddressViewSet
from rest_framework import routers
router = routers.DefaultRouter()
router.register('enterprise', EnterpriseViewSet, basename="enterprise")
+router.register('enterpriseaddress', EnterpriseAddressViewSet, basename="enterpriseaddress")
urlpatterns = [
path('', include(router.urls))
diff --git a/server/apps/crm/views.py b/server/apps/crm/views.py
index 622195a..0afb919 100644
--- a/server/apps/crm/views.py
+++ b/server/apps/crm/views.py
@@ -1,13 +1,14 @@
from django.shortcuts import render
from rest_framework.viewsets import ModelViewSet
-from .models import Enterprise
+from .models import Enterprise,EnterpriseAddress
from utils.queryset import get_child_queryset2
-from .serializers import EnterpriseSerializer,EnterpriseListSerializer
+from .serializers import EnterpriseSerializer,EnterpriseListSerializer,EnterpriseAddressSerializer
from apps.system.permission_data import RbacFilterSet
+from apps.system.mixins import CreateUpdateCustomMixin, OptimizationMixin
# Create your views here.
-class EnterpriseViewSet(RbacFilterSet, ModelViewSet):
+class EnterpriseViewSet(CreateUpdateCustomMixin, OptimizationMixin, ModelViewSet):
perms_map = {'get': '*', 'post': 'Enterprise_create',
'put': 'Enterprise_update', 'delete': 'Enterprise_delete'}
queryset = Enterprise.objects
@@ -20,9 +21,13 @@ class EnterpriseViewSet(RbacFilterSet, ModelViewSet):
return EnterpriseListSerializer
return EnterpriseSerializer
- def get_queryset(self):
- queryset = self.queryset
- if hasattr(self.get_serializer_class(), 'setup_eager_loading'):
- queryset = self.get_serializer_class().setup_eager_loading(queryset) # 性能优化
- return queryset
+
+class EnterpriseAddressViewSet(CreateUpdateCustomMixin, OptimizationMixin, ModelViewSet):
+ perms_map = {'get': '*', 'post': 'enterpriseaddress_create',
+ 'put': 'enterpriseaddress_update', 'delete': 'enterpriseaddress_delete'}
+ queryset = EnterpriseAddress.objects
+ serializer_class = EnterpriseAddressSerializer
+ search_fields = ['address']
+ ordering = ['-create_time']
+