From e11447b8002a5f1d0541e1301c2ae0d9819dad91 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 20 Jul 2021 16:52:32 +0800 Subject: [PATCH] =?UTF-8?q?django=20cache=20=E6=9C=89=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/.env.development | 4 +- client_mp/components/.DS_Store | Bin 0 -> 6148 bytes .../components/linzq-imgUpload/.DS_Store | Bin 0 -> 6148 bytes .../linzq-imgUpload/linzq-imgUpload.vue | 183 ++++++++++++++++++ .../components/linzq-imgUpload/shanchus2.png | Bin 0 -> 6291 bytes .../components/linzq-imgUpload/tupianadd.png | Bin 0 -> 5816 bytes client_mp/pages/inspectrecord/recorddo.vue | 2 +- client_mp/pages/vod/video.vue | 3 - client_mp/store/index.js | 1 + .../apps/ability/migrations/0020_ability.py | 39 ++++ .../migrations/0021_auto_20210719_1237.py | 18 ++ .../migrations/0022_auto_20210719_1411.py | 23 +++ server/apps/ability/models.py | 21 ++ server/apps/ability/urls.py | 5 +- server/apps/ability/views.py | 102 +++++++++- server/server/settings_dev.py | 14 +- 16 files changed, 404 insertions(+), 11 deletions(-) create mode 100644 client_mp/components/.DS_Store create mode 100644 client_mp/components/linzq-imgUpload/.DS_Store create mode 100644 client_mp/components/linzq-imgUpload/linzq-imgUpload.vue create mode 100644 client_mp/components/linzq-imgUpload/shanchus2.png create mode 100644 client_mp/components/linzq-imgUpload/tupianadd.png create mode 100644 server/apps/ability/migrations/0020_ability.py create mode 100644 server/apps/ability/migrations/0021_auto_20210719_1237.py create mode 100644 server/apps/ability/migrations/0022_auto_20210719_1411.py diff --git a/client/.env.development b/client/.env.development index db28ec5..c5200d4 100644 --- a/client/.env.development +++ b/client/.env.development @@ -3,10 +3,10 @@ ENV = 'development' # base api #VUE_APP_BASE_API = 'http://10.0.11.127:8000/api' -#VUE_APP_BASE_API = 'http://127.0.0.1:8000/api' +VUE_APP_BASE_API = 'http://127.0.0.1:8000/api' #VUE_APP_BASE_API = 'https://testsearch.ctc.ac.cn/api' -VUE_APP_BASE_API = 'http://47.95.0.242:9101/api' +#VUE_APP_BASE_API = 'http://47.95.0.242:9101/api' # vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable, diff --git a/client_mp/components/.DS_Store b/client_mp/components/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5f98ef7375e37dd40e40f65b115204c6a8b54510 GIT binary patch literal 6148 zcmeHK&2AGh5FV!ioFLR3kP0_nkT?V>%OMp)NUO9QdP7=%4uINSHfmSeu0ygRq9JIX z1Kx-i;Bnv^+o?bS^+qc+BaOe=@r=Fxys~$QNR8%sMARc94P|U~(ELHTpLIi8!LtQa zZjATzfC@ULV|uX>Esm?m0Po#4mDsh4&gj?uo4{)+rTn0@@3PWnh~&@YG4%cqC$KKe z&K9#t$o`g1%3@Xz2H#a{t9|YI4XwMnd#n34IkAhRPV4z>lulps)3dZb$%6gd+Vb2^ zvzNtqaoD@PXRA6bs`1n%7x@?=Z(bEuZWkjvukx82C-EIxcXa2lcXzprb_Y@4M8n-x z-z*;uANI{KidL(R-nkb&IXF7~c((ks`uxSMj1<0VC))wn@D;`dtbItPRcWhZM6O3! zXA24g!hkSv*$jkpN#DHe7m@je0b$_EF~H}8filJc8;|bjK;udPU>j~Hu=yvEb4EG*r7bJ}^APoGU45;>gvOmJw!ri*DO1^6i^a#qragE3G6d3L*Ml4^&cc4z- YH*5gofQ?6ZAo3&NXplx2_@@l~1XpxtMF0Q* literal 0 HcmV?d00001 diff --git a/client_mp/components/linzq-imgUpload/.DS_Store b/client_mp/components/linzq-imgUpload/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..511f62b89441f8dd9a99b3df09e6630c87f3e1e4 GIT binary patch literal 6148 zcmeHKu}TCn6r8759EfmWp=C-N1#NAX<1DPjUhhs$VZB|^wXoXX@hf#EiQ?U*u@RB? zAeoosO_CkhBoBa%yZH$)0x)C|nw)~EyEwF!gSUwm=Xk^s?(u*Ht_lfna z#4EntSyfiDGgJ_HtFm9bA4 zj}BHb1t1RC9gV&o$Kr&HRmMIcM`)I)#6-26VpyWHKjgS7W1le5VLAD*yz*!AVsUlO zA7VJHO6avK;0mlNpxl=>(*1wVU#6Jk#}Kbv0axI^Dqw@jcj~SUEY~bD q#r1M%^j97MZ0H<0h=XZ7$Y)%Yu}`R3)F0_Ye+WcDymAG8L4gmA<2zvh literal 0 HcmV?d00001 diff --git a/client_mp/components/linzq-imgUpload/linzq-imgUpload.vue b/client_mp/components/linzq-imgUpload/linzq-imgUpload.vue new file mode 100644 index 0000000..a8604a8 --- /dev/null +++ b/client_mp/components/linzq-imgUpload/linzq-imgUpload.vue @@ -0,0 +1,183 @@ + + + + + diff --git a/client_mp/components/linzq-imgUpload/shanchus2.png b/client_mp/components/linzq-imgUpload/shanchus2.png new file mode 100644 index 0000000000000000000000000000000000000000..c2cb8e30cafdd0cf76a8a8184c27ab5b16f9ab9c GIT binary patch literal 6291 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 literal 0 HcmV?d00001 diff --git a/client_mp/components/linzq-imgUpload/tupianadd.png b/client_mp/components/linzq-imgUpload/tupianadd.png new file mode 100644 index 0000000000000000000000000000000000000000..3d032af9d240ab7d11585ef5cb640d2ab5c442e9 GIT binary patch literal 5816 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 I^_`;s3y&nSMF0Q* literal 0 HcmV?d00001 diff --git a/client_mp/pages/inspectrecord/recorddo.vue b/client_mp/pages/inspectrecord/recorddo.vue index 44ed9e0..fe5f065 100644 --- a/client_mp/pages/inspectrecord/recorddo.vue +++ b/client_mp/pages/inspectrecord/recorddo.vue @@ -23,7 +23,7 @@ - + diff --git a/client_mp/pages/vod/video.vue b/client_mp/pages/vod/video.vue index b694ff7..8a5a0d6 100644 --- a/client_mp/pages/vod/video.vue +++ b/client_mp/pages/vod/video.vue @@ -151,9 +151,6 @@ // 点击导航切换swiper taggleNav(val) { this.swiperIndex = val; - if (this.list[val].content.length == 0) { - this.getVideos() - } }, // 滚动tabs以及移动下划线 scrollDom() { diff --git a/client_mp/store/index.js b/client_mp/store/index.js index 6698ed9..570fc7e 100644 --- a/client_mp/store/index.js +++ b/client_mp/store/index.js @@ -35,6 +35,7 @@ const store = new Vuex.Store({ vuex_token: lifeData.vuex_token ? lifeData.vuex_token : '', // vuex_host: 'http://127.0.0.1:8000', //vuex_api: 'http://47.95.0.242:9101/api', + //vuex_api: 'http://127.0.0.1:8000/api', // vuex_apifile: 'http://127.0.0.1:8000/api/file/', vuex_host: 'https://testsearch.ctc.ac.cn', diff --git a/server/apps/ability/migrations/0020_ability.py b/server/apps/ability/migrations/0020_ability.py new file mode 100644 index 0000000..019c551 --- /dev/null +++ b/server/apps/ability/migrations/0020_ability.py @@ -0,0 +1,39 @@ +# Generated by Django 3.0.5 on 2021-07-19 02:38 + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('ability', '0019_auto_20210129_0957'), + ] + + operations = [ + migrations.CreateModel( + name='Ability', + 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='删除标记')), + ('dlxh', models.TextField(blank=True, null=True, verbose_name='大类序号')), + ('dlmc', models.TextField(blank=True, null=True, verbose_name='大类')), + ('lbxh', models.TextField(blank=True, null=True, verbose_name='类别序号')), + ('lbmc', models.TextField(blank=True, null=True, verbose_name='类别名称')), + ('xmxh', models.TextField(blank=True, null=True, verbose_name='项目序号')), + ('xmmc', models.TextField(blank=True, null=True, verbose_name='项目名称')), + ('bzmc', models.TextField(blank=True, null=True, verbose_name='标准名称')), + ('bzbh', models.TextField(blank=True, null=True, verbose_name='标准编号')), + ('bztk', models.TextField(blank=True, null=True, verbose_name='标准条款')), + ('xzfw', models.TextField(blank=True, null=True, verbose_name='限制范围')), + ('bz', models.TextField(blank=True, null=True, verbose_name='备注')), + ('cma', models.TextField(blank=True, null=True, verbose_name='CMA中心')), + ('cna', models.TextField(blank=True, null=True, verbose_name='CNAS中心')), + ], + options={ + 'verbose_name': '记录合并', + }, + ), + ] diff --git a/server/apps/ability/migrations/0021_auto_20210719_1237.py b/server/apps/ability/migrations/0021_auto_20210719_1237.py new file mode 100644 index 0000000..86e7c99 --- /dev/null +++ b/server/apps/ability/migrations/0021_auto_20210719_1237.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.5 on 2021-07-19 04:37 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('ability', '0020_ability'), + ] + + operations = [ + migrations.RenameField( + model_name='ability', + old_name='cna', + new_name='cnas', + ), + ] diff --git a/server/apps/ability/migrations/0022_auto_20210719_1411.py b/server/apps/ability/migrations/0022_auto_20210719_1411.py new file mode 100644 index 0000000..8a51df0 --- /dev/null +++ b/server/apps/ability/migrations/0022_auto_20210719_1411.py @@ -0,0 +1,23 @@ +# Generated by Django 3.0.5 on 2021-07-19 06:11 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('ability', '0021_auto_20210719_1237'), + ] + + operations = [ + migrations.AddField( + model_name='ability', + name='cma_o', + field=models.TextField(blank=True, null=True, verbose_name='中心'), + ), + migrations.AddField( + model_name='ability', + name='cma_oplace', + field=models.TextField(blank=True, null=True, verbose_name='地点'), + ), + ] diff --git a/server/apps/ability/models.py b/server/apps/ability/models.py index d6d0058..0a67462 100644 --- a/server/apps/ability/models.py +++ b/server/apps/ability/models.py @@ -6,6 +6,27 @@ from apps.system.models import Organization, User # Create your models here. from django.contrib.postgres.fields import JSONField +class Ability(BaseModel): + dlxh = models.TextField('大类序号', null=True, blank=True) + dlmc = models.TextField('大类', null=True, blank=True) + lbxh = models.TextField('类别序号', null=True,blank=True) + lbmc = models.TextField('类别名称', null=True,blank=True) + xmxh = models.TextField('项目序号', null=True,blank=True) + xmmc = models.TextField('项目名称', null=True,blank=True) + bzmc = models.TextField('标准名称', null=True,blank=True) + bzbh = models.TextField('标准编号', null=True,blank=True) + bztk = models.TextField('标准条款', null=True,blank=True) + xzfw = models.TextField('限制范围',null=True,blank=True) + bz = models.TextField('备注',null=True,blank=True) + cma = models.TextField('CMA中心',null=True,blank=True) + cnas = models.TextField('CNAS中心',null=True,blank=True) + cma_o = models.TextField('中心',null=True,blank=True) + cma_oplace = models.TextField('地点',null=True,blank=True) + class Meta: + verbose_name='记录合并' + + + class QueryRecord(BaseModel): user = models.ForeignKey(User, related_name='record_user', on_delete=models.CASCADE) path = models.CharField('访问地址', max_length=200) diff --git a/server/apps/ability/urls.py b/server/apps/ability/urls.py index 41228a7..7edb021 100644 --- a/server/apps/ability/urls.py +++ b/server/apps/ability/urls.py @@ -1,6 +1,6 @@ from django.urls import path, include from rest_framework import routers -from .views import CMAViewSet, CNASViewSet, QualificationViewSet,InspectionViewSet,QualificationotherViewSet, QueryRecordListViewSet +from .views import CMAViewSet, CNASViewSet, QualificationViewSet,InspectionViewSet,QualificationotherViewSet, QueryRecordListViewSet, correct_ability, merge_cma, merge_cnas router = routers.DefaultRouter() router.register('cma', CMAViewSet, basename="cma") @@ -10,5 +10,8 @@ router.register('qualificationother', QualificationotherViewSet, basename="quali router.register('inspection', InspectionViewSet, basename="inspection") router.register('queryrecord', QueryRecordListViewSet, basename="queryrecord") urlpatterns = [ + path('merge/cma/', merge_cma), + path('merge/cnas/', merge_cnas), + path('correct/', correct_ability), path('', include(router.urls)) ] \ No newline at end of file diff --git a/server/apps/ability/views.py b/server/apps/ability/views.py index 3af95cb..35ca1e7 100644 --- a/server/apps/ability/views.py +++ b/server/apps/ability/views.py @@ -14,6 +14,7 @@ from apps.system.models import Organization from openpyxl import Workbook, load_workbook from django.db.models import Count from utils.pagination import PageOrNot +from rest_framework.views import APIView # Create your views here. import json @@ -58,12 +59,15 @@ class CMAViewSet(RecordMixin, ModelViewSet): """ queryset = self.filter_queryset(self.get_queryset()) ret = [] + ret2 = {} if request.query_params.get('group_by', None): group_by = request.query_params.get('group_by') group_by_data = list(queryset.values(group_by).annotate(count=Count(group_by)).order_by(group_by)) for i in group_by_data: if i[group_by] and i['count']: + ret2[i[group_by]] = "A" ret.append({'text':i[group_by]+'('+ str(i['count']) +')','value':i[group_by]}) + print(ret2) return Response(ret) @action(methods=['post'], detail=False, url_path='deletes', url_name='cma_deletes', perms_map = {'post':'cma_deletes'}) def deletes(self, request): @@ -593,4 +597,100 @@ def import_inspection(filename, path): data['sszx'] = sszx datalist.append(Inspection(**data)) i = i + 1 - Inspection.objects.bulk_create(datalist) \ No newline at end of file + Inspection.objects.bulk_create(datalist) + +from django.db.models.functions import Cast +def merge_cnas(request): + for i in CNAS.objects.all(): + objs = Ability.objects.filter(lbmc=i.lbmc,xmmc=i.xmmc, bzbh=i.bzbh, bztk=i.bztk) + if objs.exists(): + obj = objs[0] + if obj.cnas: + obj.cnas = obj.cnas + ',' + i.sszx + obj.save() + else: + obj.cnas = i.sszx + obj.save() + print('已修改--'+obj.xmmc+ '-' + obj.cnas) + +def merge_cma(request): + for i in CMA.objects.filter(type='center'): + bztk = i.bzbh.split(' ')[-1] + bzbh = i.bzbh.rstrip(bztk).strip() + if len(bzbh)<8: + bzbh = i.bzbh + bztk = '' + objs = Ability.objects.filter(lbmc=i.lbmc, xmmc=i.xmmc, bzbh = bzbh, bztk=bztk) + if objs.exists(): + obj = objs[0] + obj.cma = obj.cma + ',' + i.sszx + obj.save() + print('已修改--'+obj.xmmc+ '-' + obj.cma) + else: + obj = Ability() + obj.dlxh = i.dlxh + obj.dlmc = i.dlmc + obj.lbxh = i.lbxh + obj.lbmc = i.lbmc + obj.xmxh = i.xmxh + obj.xmmc = i.xmmc + obj.bzmc = i.bzmc + obj.bzbh = bzbh + obj.bztk = bztk + obj.xzfw = i.xzfw + obj.bz = i.bz + obj.cma = i.sszx + obj.save() + print('已添加--'+obj.xmmc+obj.bzmc) + +def correct_ability(request): + zxdict = { + "测试中心":"B", + "玻璃中心":"E", + "腐蚀中心":"P", + "光伏中心":"L", + "耐火中心":"Q", + "石材中心":"R", + "水泥中心":"D", + "质检中心":"C" + } + placedict = { + "玻璃中心-管庄": "E", + "玻璃中心-密云": "E", + "玻璃中心-永顺": "E", + "测试中心-管庄": "B", + "测试中心-光华路": "B", + "测试中心-国检三层": "B", + "测试中心-密云": "B", + "测试中心-顺义种植园": "B", + "测试中心-宋庄": "B", + "测试中心-通州种植园": "B", + "测试中心-永顺": "B", + "腐蚀中心": "P", + "光伏中心-管庄": "L", + "光伏中心-密云": "L", + "耐火中心": "Q", + "石材中心": "R", + "水泥中心": "D", + "质检中心-管庄": "C", + "质检中心-光华路": "C", + "质检中心-国检三层": "c", + "质检中心-密云": "C", + "质检中心-顺义种植园": "C", + "质检中心-宋庄": "C", + "质检中心-通州种植园": "C", + "质检中心-永顺": "C" + } + + for i in Ability.objects.all(): + # i.cma_o = i.cma + i.cma = i.cma_o + i.cma_oplace = i.cma_o + for key in zxdict: + if key in i.cma_o: + i.cma = i.cma.replace(key, zxdict[key]) + for key in placedict: + if key in i.cma_o: + i.cma_oplace = i.cma_oplace.replace(key, placedict[key]) + i.save() + print('已修改' + i.cma) diff --git a/server/server/settings_dev.py b/server/server/settings_dev.py index 592ebd9..dca12b6 100644 --- a/server/server/settings_dev.py +++ b/server/server/settings_dev.py @@ -1,12 +1,20 @@ from .settings import * DEBUG = True DATABASES = { + # 'default': { + # 'ENGINE': 'django.db.backends.postgresql', + # 'NAME': 'cma', + # 'USER': 'postgres', + # 'PASSWORD': 'zctest1234', + # 'HOST': '47.95.0.242', + # 'PORT': '5432', + # } 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'cma', - 'USER': 'postgres', - 'PASSWORD': 'zctest1234', - 'HOST': '47.95.0.242', + 'USER': 'cma', + 'PASSWORD': 'cma123', + 'HOST': '172.16.80.102', 'PORT': '5432', } }