Browse Source

优化序列号管理系统;过滤查询时的登录和退出登录

guanhailong 2 years ago
parent
commit
d6aa6081de
3 changed files with 344 additions and 60 deletions
  1. 5 0
      Controller/FileController.py
  2. 5 1
      Controller/LogController.py
  3. 334 59
      Controller/SerialNumberController.py

+ 5 - 0
Controller/FileController.py

@@ -765,6 +765,7 @@ class DownloadSerialNumberFileView(View):
         num = 0
         num = 0
 
 
         updates = []
         updates = []
+        company_serial_updates = []
         updates_serial_number = []
         updates_serial_number = []
         content = ''
         content = ''
         now_time = int(time.time())
         now_time = int(time.time())
@@ -791,6 +792,8 @@ class DownloadSerialNumberFileView(View):
             )
             )
             updates.append(serialNumberModel)
             updates.append(serialNumberModel)
 
 
+            company_serial_updates.append(serial_number)  # 获取序列号
+
             order_serial_number = OrderSerialNumberModel(serial_number=item, order=order, add_time=now_time, update_time=now_time)
             order_serial_number = OrderSerialNumberModel(serial_number=item, order=order, add_time=now_time, update_time=now_time)
             updates_serial_number.append(order_serial_number)
             updates_serial_number.append(order_serial_number)
 
 
@@ -801,6 +804,8 @@ class DownloadSerialNumberFileView(View):
                 updates_serial_number.clear()
                 updates_serial_number.clear()
         mac_qs.update(value=mac, update_time=now_time)  # 更新mac表数据
         mac_qs.update(value=mac, update_time=now_time)  # 更新mac表数据
 
 
+        CompanySerialModel.objects.filter(serial_number__in=company_serial_updates).update(status=2) # 更新序列号状态
+
         if len(updates) > 0:
         if len(updates) > 0:
             bulk_update(updates)
             bulk_update(updates)
             OrderSerialNumberModel.objects.bulk_create(updates_serial_number)
             OrderSerialNumberModel.objects.bulk_create(updates_serial_number)

+ 5 - 1
Controller/LogController.py

@@ -1,5 +1,6 @@
 #!/usr/bin/env python3
 #!/usr/bin/env python3
 # -*- coding: utf-8 -*-
 # -*- coding: utf-8 -*-
+from django.db.models import Q
 from django.utils.decorators import method_decorator
 from django.utils.decorators import method_decorator
 from django.views import View
 from django.views import View
 from django.views.decorators.csrf import csrf_exempt
 from django.views.decorators.csrf import csrf_exempt
@@ -50,7 +51,10 @@ class LogView(View):
         line = request_dict.get('line', None)
         line = request_dict.get('line', None)
 
 
         if page and line:
         if page and line:
-            log_qs = LogModel.objects.filter(user__id=token.userID).values('id', 'operation', 'time', 'ip', 'user__username')
+            log_qs = LogModel.objects.filter(
+                Q(user__id=token.userID) & ~Q(operation='登录账号') & ~Q(operation='退出登录')).values('id', 'operation',
+                                                                                               'time', 'ip',
+                                                                                               'user__username')
             if log_qs.exists():
             if log_qs.exists():
                 page = int(page)
                 page = int(page)
                 line = int(line)
                 line = int(line)

+ 334 - 59
Controller/SerialNumberController.py

@@ -2,22 +2,21 @@
 # -*- coding: utf-8 -*-
 # -*- coding: utf-8 -*-
 import json
 import json
 import logging
 import logging
-import random
 import time
 import time
 
 
+import requests
 from bulk_update.helper import bulk_update
 from bulk_update.helper import bulk_update
 from django.db import transaction
 from django.db import transaction
 from django.db.models import Count
 from django.db.models import Count
 from django.views import View
 from django.views import View
 
 
 from Model.models import SerialNumberModel, UserModel, UserSerialNumberModel, UserUIDModel, CompanySerialModel, \
 from Model.models import SerialNumberModel, UserModel, UserSerialNumberModel, UserUIDModel, CompanySerialModel, \
-    MacModel, LogModel
+    MacModel, LogModel, CompanyModel
 from Object.RedisObject import RedisObject
 from Object.RedisObject import RedisObject
 from Object.ResponseObject import ResponseObject
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.TokenObject import TokenObject
 from Service.AlgorithmService import AlgorithmBaseOn35
 from Service.AlgorithmService import AlgorithmBaseOn35
 from Service.CommonService import CommonService
 from Service.CommonService import CommonService
-from Service.ModelService import ModelService
 
 
 
 
 class SerialNumberView(View):
 class SerialNumberView(View):
@@ -46,26 +45,296 @@ class SerialNumberView(View):
         if token.code != 0:
         if token.code != 0:
             return response.json(token.code)
             return response.json(token.code)
 
 
-        if operation == 'quantity':
-            return self.do_quantity(request_dict,token.userID, response)
+        if operation == 'quantity':  # 查询当前可用的UID的数量
+            return self.do_quantity(request_dict, token.userID, response)
         elif operation == 'allot':
         elif operation == 'allot':
             return self.do_allot(request_dict, response)
             return self.do_allot(request_dict, response)
+        elif operation == 'createSerial':  # 生成序列号
+            return self.create_serial(request_dict, response, request)
+        elif operation == 'serialCompany':  # 将序列号分匹配到指定企业
+            return self.do_serial_company(request_dict, response, request)
+        elif operation == 'revise/state':  # 修改序列号状态
+            return self.revise_state(request_dict, response, request)
         else:
         else:
             return response.json(309)
             return response.json(309)
 
 
-    # 查询当前可用的UID的数量
+    def revise_state(self, request_dict, response, request):
+        """
+        修改序列号状态
+        @param request_dict:请求参数
+        @param response: 响应对象
+        """
+        use_status = request_dict.get('useStatus', None)  # 序列号表的状态
+        status = request_dict.get('status', None)   # 关联企业序列号表的状态
+
+        if not all([use_status, status]):
+            return response.json(444)
+        serial_number_qs = SerialNumberModel.objects.filter(use_status=use_status).values('serial_number')
+        if not serial_number_qs.exists():
+            return response.json(173)
+        serial_list = [item[key] for item in serial_number_qs for key in item]
+        try:
+            country_serial_qs = CompanySerialModel.objects.filter(serial_number__in=serial_list).values('status')
+            country_serial_qs.filter(status=status).update(status=1)
+            return response.json(0)
+        except Exception as e:
+            print(e)
+            return response.json(500)
+
+    def do_serial_company(self, request_dict, response, request):
+        """
+        将序列号分匹配到指定企业
+        :param request_dict: 请求参数
+        :param response: 响应对象
+        :param request: 请求
+        :return:
+        """
+        id = request_dict.get('id', None)
+        quantity = request_dict.get('quantity', None)
+
+        if not all([id, quantity]):
+            return response.json(444)
+
+        company_qs = CompanyModel.objects.filter(id=id)
+        if not company_qs.exists():
+            return response.json(444)
+
+        sum_Serial = SerialNumberModel.objects.filter().count()
+        sum_Serial_company = CompanySerialModel.objects.filter().count()
+        sum_bind = sum_Serial - sum_Serial_company  # 剩余可绑定的序列号
+        if int(quantity) > int(sum_bind):
+            return response.json(10041)
+
+        try:
+            company = company_qs[0]
+            start_1 = sum_Serial_company
+            end_1 = int(start_1) + int(quantity)
+            serial_qs = SerialNumberModel.objects.filter()[start_1:end_1]
+            if not serial_qs.exists():
+                return response.json(173)
+            company_serial_bulk = []
+            now_time = int(time.time())
+            for item in serial_qs:  # 更新状态为已分配但未使用
+                company_serial_bulk.append(CompanySerialModel(
+                    status=3,
+                    add_time=now_time,
+                    update_time=now_time,
+                    company_id=company.id,
+                    serial_number=item.serial_number,
+                ))
+                SerialNumberModel.objects.filter(serial_number=item.serial_number).update(
+                    use_status=3,
+                    add_time=now_time
+                )
+
+            # 记录操作日志
+            ip = CommonService.get_ip_address(request)
+            content = json.loads(json.dumps(request_dict))
+            log = {
+                'ip': ip,
+                'user_id': 1,
+                'status': 200,
+                'time': now_time,
+                'url': 'company/createSerial',
+                'content': json.dumps(content),
+                'operation': '{}生成{}个Company Serial{}: {}'.format(company.name, quantity, '成功', '同步更新成功'),
+            }
+
+            with transaction.atomic():
+                CompanySerialModel.objects.bulk_create(company_serial_bulk)
+                company.quantity = CompanySerialModel.objects.filter(company_id=id).count()
+                company.save()
+                Log = LogModel.objects.create(**log)
+
+                # 同步更新业务服务器和uid管理系统的企业序列号表
+                url1 = 'http://test.zositechc.cn/company/createSerial'
+                url2 = 'https://www.zositechc.cn/company/createSerial'
+                url3 = 'http://www.dvema.com/company/createSerial'
+                url4 = 'http://www.zositeche.com/company/createSerial'
+                requests_data = {'id': id, 'quantity': quantity}
+
+                res1 = requests.post(url=url1, data=requests_data, timeout=2 * 60)
+                if res1.status_code != 200:
+                    fail_reason = '请求测试服务器生成Company Serial响应状态码异常'
+                    return self.failResponse(company.name, quantity, fail_reason, Log, response)
+                res1 = res1.json()
+                if res1['result_code'] != 0:
+                    fail_reason = '测试服务器生成Company Serial发生异常'
+                    return self.failResponse(company.name, quantity, fail_reason, Log, response)
+
+                res2 = requests.post(url=url2, data=requests_data, timeout=2 * 60)
+                if res2.status_code != 200:
+                    fail_reason = '请求国内服务器生成Company Serial响应状态码异常'
+                    return self.failResponse(company.name, quantity, fail_reason, Log, response)
+                res2 = res2.json()
+                if res2['result_code'] != 0:
+                    fail_reason = '国内服务器生成Company Serial发生异常'
+                    return self.failResponse(company.name, quantity, fail_reason, Log, response)
+
+                res3 = requests.post(url=url3, data=requests_data, timeout=2 * 60)
+                if res3.status_code != 200:
+                    fail_reason = '请求国外服务器生成Company Serial响应状态码异常'
+                    return self.failResponse(company.name, quantity, fail_reason, Log, response)
+                res3 = res3.json()
+                if res3['result_code'] != 0:
+                    fail_reason = '国外服务器生成Company Serial发生异常'
+                    return self.failResponse(company.name, quantity, fail_reason, Log, response)
+
+                res4 = requests.post(url=url4, data=requests_data, timeout=2 * 60)
+                if res4.status_code != 200:
+                    fail_reason = '请求uid管理系统生成Company Serial响应状态码异常'
+                    return self.failResponse(company.name, quantity, fail_reason, Log, response)
+                res4 = res4.json()
+                if res4['code'] != 0:
+                    fail_reason = 'uid管理系统生成Company Serial发生异常'
+                    return self.failResponse(company.name, quantity, fail_reason, Log, response)
+
+                return response.json(0)
+
+        except Exception as e:
+            djangoLogger = logging.getLogger('django')
+            djangoLogger.exception(repr(e))
+            return response.json(176)
+
+    def create_serial(self, request_dict, response, request):
+        """
+        生成序列号
+        :param request_dict: 请求参数
+        :param response: 响应对象
+        :param request: 请求
+        :return:
+        """
+        quantity = int(request_dict.get('quantity', 0))
+
+        if not quantity:
+            return response.json(444)
+
+        try:
+            try:
+                sum = SerialNumberModel.objects.last().id
+            except:
+                sum = 0
+            serial_number_bulk = []
+            now_time = int(time.time())
+            algorithm = AlgorithmBaseOn35()
+            for i in range(quantity):
+                serial_number = algorithm.getLetter(sum)
+                sum += 1  # sum每次递增1
+                # 前面补0至六位
+                serial_number = (6 - len(serial_number)) * '0' + serial_number
+                serial_number_bulk.append(SerialNumberModel(serial_number=serial_number, add_time=now_time))
+
+            # 记录操作日志
+            ip = CommonService.get_ip_address(request)
+            content = json.loads(json.dumps(request_dict))
+            log = {
+                'ip': ip,
+                'user_id': 1,
+                'status': 200,
+                'time': now_time,
+                'url': 'serialNumber/create',
+                'content': json.dumps(content),
+                'operation': '生成{}个Serial Number{}: {}'.format(quantity, '成功', '同步更新成功'),
+            }
+
+            # 开启事务写入
+            with transaction.atomic():
+                SerialNumberModel.objects.bulk_create(serial_number_bulk)
+                Log = LogModel.objects.create(**log)
+
+                # 同步更新业务服务器和uid管理系统的序列号表
+                url1 = 'http://test.zositechc.cn/serialNumber/create'
+                url2 = 'https://www.zositechc.cn/serialNumber/create'
+                url3 = 'http://www.dvema.com/serialNumber/create'
+                url4 = 'http://www.zositeche.com/company/createSerial'
+                requests_data = {'quantity': quantity}
+
+                res1 = requests.post(url=url1, data=requests_data, timeout=2 * 60)
+                if res1.status_code != 200:
+                    fail_reason = '请求测试服务器生成Serial Number响应状态码异常'
+                    return self.failResponse(quantity, fail_reason, Log, response)
+                res1 = res1.json()
+                if res1['result_code'] != 0:
+                    fail_reason = '测试服务器生成Serial Number发生异常'
+                    return self.failResponse(quantity, fail_reason, Log, response)
+
+                res2 = requests.post(url=url2, data=requests_data, timeout=2 * 60)
+                if res2.status_code != 200:
+                    fail_reason = '请求国内服务器生成Serial Number响应状态码异常'
+                    return self.failResponse(quantity, fail_reason, Log, response)
+                res2 = res2.json()
+                if res2['result_code'] != 0:
+                    fail_reason = '国内服务器生成Serial Number发生异常'
+                    return self.failResponse(quantity, fail_reason, Log, response)
+
+                res3 = requests.post(url=url3, data=requests_data, timeout=2 * 60)
+                if res3.status_code != 200:
+                    fail_reason = '请求国外服务器生成Serial Number响应状态码异常'
+                    return self.failResponse(quantity, fail_reason, Log, response)
+                res3 = res3.json()
+                if res3['result_code'] != 0:
+                    fail_reason = '国外服务器生成Serial Number发生异常'
+                    return self.failResponse(quantity, fail_reason, Log, response)
+                res4 = requests.post(url=url4, data=requests_data, timeout=2 * 60)
+                if res4.status_code != 200:
+                    fail_reason = '请求uid管理系统生成Company Serial响应状态码异常'
+                    return self.failResponse(quantity, fail_reason, Log, response)
+                res4 = res4.json()
+                if res4['code'] != 0:
+                    fail_reason = 'uid管理系统生成Company Serial发生异常'
+                    return self.failResponse(quantity, fail_reason, Log, response)
+                return response.json(0)
+
+        except Exception as e:
+            djangoLogger = logging.getLogger('django')
+            djangoLogger.exception(repr(e))
+            return response.json(176)
+
+    def failResponse(self, quantity, fail_reason, Log, response):
+        operation = '生成{}个Serial Number{}: {}'.format(quantity, '失败', fail_reason)
+        Log.operation = operation
+        Log.save()
+        return response.json(177)
+
     def do_quantity(self, request_dict, userID, response):
     def do_quantity(self, request_dict, userID, response):
+        """
+        查询当前可用的UID的数量
+        :param request_dict: 请求参数
+        :param userID: 响应对象
+        :param response: 请求
+        :return:
+        """
         user_qs = UserModel.objects.filter(id=userID)
         user_qs = UserModel.objects.filter(id=userID)
         if not user_qs.exists():
         if not user_qs.exists():
             return response.json(9)
             return response.json(9)
 
 
-        user = user_qs[0]
-
-        result = UserSerialNumberModel.objects.filter(user__id=user.id, serial_number__use_status=1).aggregate(num=Count('serial_number__use_status'))
-        chenyundev = result['num']
         unused_serial_number_count = SerialNumberModel.objects.filter(use_status=0).count()
         unused_serial_number_count = SerialNumberModel.objects.filter(use_status=0).count()
-        chenyun = SerialNumberModel.objects.filter(use_status=1).count()
-        res_data = {'code': 0, 'chenyun': chenyun, 'unused_serial_number_count': unused_serial_number_count, 'chenyundev': chenyundev}
+        remain_qs = CompanySerialModel.objects.filter(status=1).count()
+        company_qs = CompanyModel.objects.values('id', 'name')
+        company_serial_list = []    # 剩余已分配未使用的序列号数量
+        company_not_used_list = []   # 已使用的序列号数量
+        for company in company_qs:
+            id = company['id']
+            name = company['name']
+            not_used_qs = CompanySerialModel.objects.filter(status=3, company_id=id).count()
+            res = {
+                'name': name,
+                'number': not_used_qs
+            }
+            company_not_used_list.append(res)
+
+        for company in company_qs:
+            id = company['id']
+            name = company['name']
+            company_used_qs = CompanySerialModel.objects.filter(status=1, company_id=id).count()
+            res = {
+                'name': name,
+                'numbers': company_used_qs
+            }
+            company_serial_list.append(res)
+        res_data = {'code': 0, 'companyRemainCount': company_not_used_list, 'companyRemain': company_serial_list,
+                    'unused_serial_number_count': unused_serial_number_count,
+                    'unused_all_count': remain_qs}
         return response.json(0, {'data': res_data})
         return response.json(0, {'data': res_data})
 
 
     def do_create(self, request_dict, response):
     def do_create(self, request_dict, response):
@@ -84,9 +353,9 @@ class SerialNumberView(View):
             algorithm = AlgorithmBaseOn35()
             algorithm = AlgorithmBaseOn35()
             for i in range(quantity):
             for i in range(quantity):
                 serial_number = algorithm.getLetter(sum)
                 serial_number = algorithm.getLetter(sum)
-                sum += 1    # sum每次递增1
+                sum += 1  # sum每次递增1
                 # 前面补0至六位
                 # 前面补0至六位
-                serial_number = (6-len(serial_number))*'0' + serial_number
+                serial_number = (6 - len(serial_number)) * '0' + serial_number
                 serial_number_bulk.append(SerialNumberModel(serial_number=serial_number, add_time=now_time))
                 serial_number_bulk.append(SerialNumberModel(serial_number=serial_number, add_time=now_time))
             # 开启事务写入
             # 开启事务写入
             with transaction.atomic():
             with transaction.atomic():
@@ -107,7 +376,6 @@ class SerialNumberView(View):
         if token.code != 0:
         if token.code != 0:
             return response.json(token.code)
             return response.json(token.code)
         user = UserModel.objects.get(id=token.userID)
         user = UserModel.objects.get(id=token.userID)
-
         if not user or '0' not in user.permission:
         if not user or '0' not in user.permission:
             return response.json(404)
             return response.json(404)
 
 
@@ -117,12 +385,12 @@ class SerialNumberView(View):
             return response.json(444, 'username')
             return response.json(444, 'username')
 
 
         # 取出对应区域可用的UID分配给allot_user
         # 取出对应区域可用的UID分配给allot_user
-        sn_qs = SerialNumberModel.objects.filter(use_status=0)[0:quantity]
+        sn_qs = SerialNumberModel.objects.filter(use_status=3)[0:quantity]
         sns = []
         sns = []
         for sn in sn_qs:
         for sn in sn_qs:
             sns.append(sn.serial_number)
             sns.append(sn.serial_number)
 
 
-        cs_qs = CompanySerialModel.objects.filter(serial_number__in=sns, status=1)
+        cs_qs = CompanySerialModel.objects.filter(serial_number__in=sns, status=3)
 
 
         sns = []
         sns = []
         for cs in cs_qs:
         for cs in cs_qs:
@@ -132,48 +400,52 @@ class SerialNumberView(View):
         count = sn_qs.count()
         count = sn_qs.count()
         if count < quantity:
         if count < quantity:
             return response.json(444, '序列号不足')
             return response.json(444, '序列号不足')
-
-        updates = []
-        datas = []
-        count = 0
-        if sn_qs.exists():
-            sn_qs = sn_qs[0:quantity]
-            now_time = int(time.time())
-            for i in range(len(sn_qs)):
-                item = sn_qs[i]
-                serialNumberModel = SerialNumberModel(
-                    id=item.id,
-                    serial_number=item.serial_number,
-                    status=item.status,
-                    use_status=1,
-                    add_time=item.add_time
-                )
-                user_serial_number = UserSerialNumberModel()
-                user_serial_number.serial_number = serialNumberModel
-                user_serial_number.user = allot_user_qs[0]
-                user_serial_number.add_time = now_time
-                user_serial_number.update_time = now_time
-
-                datas.append(user_serial_number)
-                updates.append(serialNumberModel)
-
-                if len(updates) % 5000 == 0:
+        try:
+            updates = []
+            datas = []
+            count = 0
+            if sn_qs.exists():
+                sn_qs = sn_qs[0:quantity]
+                now_time = int(time.time())
+                for i in range(len(sn_qs)):
+                    item = sn_qs[i]
+                    serialNumberModel = SerialNumberModel(
+                        id=item.id,
+                        serial_number=item.serial_number,
+                        status=item.status,
+                        use_status=1,
+                        add_time=item.add_time
+                    )
+                    CompanySerialModel.objects.filter(serial_number=item.serial_number).update(status=1)
+                    user_serial_number = UserSerialNumberModel()
+                    user_serial_number.serial_number = serialNumberModel
+                    user_serial_number.user = allot_user_qs[0]
+                    user_serial_number.add_time = now_time
+                    user_serial_number.update_time = now_time
+
+                    datas.append(user_serial_number)
+                    updates.append(serialNumberModel)
+
+                    if len(updates) % 5000 == 0:
+                        bulk_update(updates)
+                        UserSerialNumberModel.objects.bulk_create(datas)
+
+                if len(updates) > 0:
                     bulk_update(updates)
                     bulk_update(updates)
                     UserSerialNumberModel.objects.bulk_create(datas)
                     UserSerialNumberModel.objects.bulk_create(datas)
 
 
-            if len(updates) > 0:
-                bulk_update(updates)
-                UserSerialNumberModel.objects.bulk_create(datas)
-
-            del datas
-            del updates
-            return response.json(0)
-        else:
-            return response.json(444)
+                del datas
+                del updates
+                return response.json(0)
+            else:
+                return response.json(444)
+        except Exception as e:
+            print(e)
+            return response.json(500)
 
 
     # 提供给pc端获取序列号
     # 提供给pc端获取序列号
     def do_get_serial_number(self, request_dict, request, response):
     def do_get_serial_number(self, request_dict, request, response):
-        quantity = 1   #只能取一个
+        quantity = 1  # 只能取一个
         company_id = request_dict.get('company_id', None)
         company_id = request_dict.get('company_id', None)
         token = request_dict.get('token', None)
         token = request_dict.get('token', None)
         time_stamp = request_dict.get('time_stamp', None)
         time_stamp = request_dict.get('time_stamp', None)
@@ -205,17 +477,18 @@ class SerialNumberView(View):
             return response.json(9)
             return response.json(9)
 
 
         user = user_qs[0]
         user = user_qs[0]
-        result = UserSerialNumberModel.objects.filter(user__id=user.id, serial_number__use_status=1).\
+        result = UserSerialNumberModel.objects.filter(user__id=user.id, serial_number__use_status=1). \
             aggregate(num=Count('serial_number__use_status'))
             aggregate(num=Count('serial_number__use_status'))
 
 
-        us_qs = UserSerialNumberModel.objects.filter(user__id=user.id, serial_number__use_status=1).\
+        us_qs = UserSerialNumberModel.objects.filter(user__id=user.id, serial_number__use_status=1). \
             values('serial_number__serial_number')
             values('serial_number__serial_number')
 
 
         sns = []
         sns = []
         for us in us_qs:
         for us in us_qs:
             sns.append(us['serial_number__serial_number'])
             sns.append(us['serial_number__serial_number'])
 
 
-        cs_qs = CompanySerialModel.objects.filter(serial_number__in=sns, status=1, company__secret=company_id).values('serial_number', 'company__mark')
+        cs_qs = CompanySerialModel.objects.filter(serial_number__in=sns, status=1, company__secret=company_id).values(
+            'serial_number', 'company__mark')
         sns = []
         sns = []
         mark = ""
         mark = ""
         if cs_qs.exists():
         if cs_qs.exists():
@@ -231,7 +504,7 @@ class SerialNumberView(View):
             return response.json(444, '序列号不足')
             return response.json(444, '序列号不足')
 
 
         try:
         try:
-            with transaction.atomic():      # 开启事务
+            with transaction.atomic():  # 开启事务
                 sn_qs = sn_qs[0: quantity]
                 sn_qs = sn_qs[0: quantity]
                 serial_number = sn_qs[0].serial_number
                 serial_number = sn_qs[0].serial_number
                 # 防止重复获取序列号
                 # 防止重复获取序列号
@@ -240,7 +513,7 @@ class SerialNumberView(View):
                 if not is_lock:
                 if not is_lock:
                     return response.json(5)
                     return response.json(5)
 
 
-                if not mac:     # 不传入则分配mac
+                if not mac:  # 不传入则分配mac
                     mac_qs = MacModel.objects.filter().values('id', 'value', 'is_active')[0]
                     mac_qs = MacModel.objects.filter().values('id', 'value', 'is_active')[0]
                     if not mac_qs['is_active']:
                     if not mac_qs['is_active']:
                         return response.json(175)
                         return response.json(175)
@@ -264,6 +537,9 @@ class SerialNumberView(View):
                 updates.append(serialNumberModel)
                 updates.append(serialNumberModel)
                 bulk_update(updates)
                 bulk_update(updates)
 
 
+                # 更新企业关联序列号状态
+                CompanySerialModel.objects.filter(serial_number=serial_number).update(status=2, update_time=now_time)
+
                 # 记录操作日志
                 # 记录操作日志
                 ip = CommonService.get_ip_address(request)
                 ip = CommonService.get_ip_address(request)
                 content = json.loads(json.dumps(request.POST))
                 content = json.loads(json.dumps(request.POST))
@@ -283,4 +559,3 @@ class SerialNumberView(View):
         except Exception as e:
         except Exception as e:
             redisObj.del_data(key=serial_operate_lock_key)  # redis解锁
             redisObj.del_data(key=serial_operate_lock_key)  # redis解锁
             return response.json(500, repr(e))
             return response.json(500, repr(e))
-