فهرست منبع

增加ERPtoken与出库逻辑

flower_mr 1 ماه پیش
والد
کامیت
2d3f38b162

BIN
bin/__pycache__/views.cpython-38.pyc


+ 2 - 145
bin/views.py

@@ -551,7 +551,7 @@ class LocationAllocation:
         if not container_detail:
         if not container_detail:
             print (f"托盘 {container_code} 未组盘")
             print (f"托盘 {container_code} 未组盘")
             logger.error(f"托盘 {container_code} 未组盘_from get_batch_status")
             logger.error(f"托盘 {container_code} 未组盘_from get_batch_status")
-            return 0
+            return None
 
 
         batch_status = container_detail.batch.status
         batch_status = container_detail.batch.status
         return batch_status
         return batch_status
@@ -761,135 +761,7 @@ class LocationAllocation:
             logger.error(f"分配算法异常:{str(e)}")
             logger.error(f"分配算法异常:{str(e)}")
             return None
             return None
 
 
-    @transaction.atomic
-    def get_empty_location_list(self, container_code):
-        """
-        智能库位分配核心算法 单个托盘组
-        :param container_code: 托盘码
-        :return: 库位类型分配方案
-        """
-        try:
-            batch = self.get_batch(container_code)
-            if not batch:
-                logger.error("批次信息获取失败")
-                return None
-
-            # 检查已有分配方案
-            existing_solution = alloction_pre.objects.filter(batch_number=batch).first()
-            if existing_solution:
-                return existing_solution.layer_pre_type
-
-            # 获取关键参数
-            # total_pallets = self.get_pallet_count_by_batch(container_code)
-            layer_capacity = self.get_left_locationGroup_number_by_type()
-            current_pressure = self.get_current_pressure()
-
-            # 测试参数
-            total_pallets = 1
-            # layer_capacity = [{'T1': 29, 'T2': 14, 'S4': 10, 'T4': 27, 'T5': 27}, {'T1': 0, 'T2': 0, 'S4': 0, 'T4': 0, 'T5': 21}, {'T1': 29, 'T2': 14, 'S4': 10, 'T4': 27, 'T5': 27}]
-            # current_pressure = [1,0,0]
-            print(f"[1]托盘数目: {total_pallets}")
-            print(f"[2]层容量: {layer_capacity}")
-            # print(f"[3]当前压力: {current_pressure}")
-
-            # 定义库位容量表
-            LOCATION_CAPACITY = {'T1':1, 'T2':2, 'T4':4, 'S4':4, 'T5':5}
-            
-            def allocate(remain, path, pressure,real_pressure,layer_capacity_state, depth=0):
-                # 终止条件
-                if remain <= 0:
-                    return [path,real_pressure]
-                # 深拷贝当前层容量状态
-                new_layer_capacity = copy.deepcopy(layer_capacity_state)
-                # print(f"[2]当前剩余: {new_layer_capacity}")
-                # 压力平衡系数
-                balance_factor = 1.0 - (0.1 * min(depth, 5))
-                # 层选择策略
-                print (f"[3]当前压力: {pressure}")
-                layer_priority = sorted(
-                    [(0, pressure[0]), (1, pressure[1]), (2, pressure[2])],
-                    key=lambda x: (x[1] * balance_factor, x[0])
-                )
-
-                for layer, _ in layer_priority:
-                    # 生成候选库位类型(按效率和容量排序)
-                    # 排序键函数 :
-                    # min(x[1], remain) 计算当前库位类型的容量 c 和剩余数量 remain 中的较小值。
-                    # -min(x[1], remain) 和 -x[1] 都使用了负号,这意味着排序是按降序进行的。
-                    # 首先按 -min(x[1], remain) 排序,即优先选择容量与剩余数量更接近的库位类型。
-                    # 如果有多个库位类型的容量与剩余数量相同,则按 -x[1] 排序,即优先选择容量更大的库位类型。
-                    print(f"[4]当前层: {layer+1}, 剩余: {remain}, 容量状态: {new_layer_capacity[layer]}")
-                    candidates = sorted(
-                        [(t, c) for t, c in LOCATION_CAPACITY.items() 
-                         if new_layer_capacity[layer].get(t,0) > 0],
-                        key=lambda x: (abs(x[1]-remain), -x[1])
-                    )
 
 
-                    print(f"[4]候选库位类型: {candidates}")
-                    for loc_type, cap in candidates:
-                        # 更新容量状态
-                        updated_capacity = copy.deepcopy(new_layer_capacity)
-                        updated_capacity[layer][loc_type] -= 1  # 占用一个库位组
-                        # 允许适度空间浪费(当剩余<2时)
-                        # effective_cap = min(cap, remain) if (cap - remain) < 2 else cap
-                        effective_cap = min(cap, remain) 
-                        
-                        if effective_cap <= remain:
-                            new_remain = remain - effective_cap
-                            new_pressure = pressure.copy()
-                            for i in range(0, 3):
-                                new_pressure[i] -=1 if new_pressure[i] > 0 else 0
-                            new_pressure[layer] += effective_cap  # 按实际存放数计算压力,此时别的楼层压力可能降下来了
-                            real_pressure[layer] += effective_cap  # 实际压力
-                            result = allocate(
-                                new_remain, 
-                                path + [f"{layer+1}_{loc_type}"],
-                                new_pressure,
-                                real_pressure,
-                                updated_capacity,
-                                depth + 1
-                            )
-                            if result:
-                                print (f"[5]分配方案: {result}")
-                                return result
-
-                return None
-
-            # 执行分配
-            allocation = allocate(total_pallets, [], [current_pressure[0], current_pressure[1],current_pressure[2]],[current_pressure[0], current_pressure[1],current_pressure[2]], layer_capacity)
-            
-            if not allocation:
-                logger.error("无法生成有效分配方案")
-                return None
-
-            # 保存分配方案
-            allocation_json = self.divide_solution_by_layer(allocation[0])
-            print(f"[6]分配方案: {allocation_json}")
-            solution = alloction_pre(
-                batch_number=batch,
-                layer_pre_type =allocation_json
-            )
-            solution_pressure, created = base_location.objects.get_or_create(
-                id=1,
-                defaults={
-                    'layer1_pressure': 0,
-                    'layer2_pressure': 0, 
-                    'layer3_pressure': 0
-                }
-            )
-            solution_pressure.layer1_pressure = allocation[1][0]
-            solution_pressure.layer2_pressure = allocation[1][1]
-            solution_pressure.layer3_pressure = allocation[1][2]
-
-            solution.save()
-            solution_pressure.save()
-
-
-            return [loc.split('_')[1] for loc in allocation[0]]
-
-        except Exception as e:
-            logger.error(f"分配算法异常:{str(e)}")
-            return None
     def divide_solution_by_layer(self, data):
     def divide_solution_by_layer(self, data):
 
 
         # 统计所有存在的层级
         # 统计所有存在的层级
@@ -1054,23 +926,8 @@ class LocationAllocation:
             print(f"库位安排到第{location_min_value.c_number}个库位:{location_min_value}")
             print(f"库位安排到第{location_min_value.c_number}个库位:{location_min_value}")
             return location_min_value
             return location_min_value
 
 
-        elif status == 0:
-            # 4. 获取空库位
-            print (f"空库位")
-            # 创建托盘批次
-            self.create_batch(container_code)
-            location_list = self.get_empty_location_list(container_code)
-            location_min_value = self.get_location_list_remainder(location_list,container_code)
-            print(f"库位安排到第{location_min_value.c_number}个库位:{location_min_value}")
-            return location_min_value
 
 
-    def create_batch(self, container_code):
-        """创建托盘批次"""
-        try:
-            goods_code = "Con_group"
-            bound_month = datetime.datetime.now().strftime("%Y%m")
-            
-            batch = BoundBatchModel.objects.create(
+
 
 
 
 
     def release_location(self, location_code):
     def release_location(self, location_code):

BIN
container/__pycache__/filter.cpython-38.pyc


BIN
container/__pycache__/views.cpython-38.pyc


+ 4 - 3
container/filter.py

@@ -1,4 +1,4 @@
-from django_filters import FilterSet
+from django_filters import FilterSet, NumberFilter, CharFilter
 from .models import ContainerListModel,ContainerDetailModel,ContainerOperationModel,TaskModel
 from .models import ContainerListModel,ContainerDetailModel,ContainerOperationModel,TaskModel
 
 
 class ContainerListFilter(FilterSet):
 class ContainerListFilter(FilterSet):
@@ -14,7 +14,8 @@ class ContainerListFilter(FilterSet):
         }
         }
 
 
 class ContainerDetailFilter(FilterSet):
 class ContainerDetailFilter(FilterSet):
-     class Meta:
+
+    class Meta:
         model = ContainerDetailModel
         model = ContainerDetailModel
         fields = {
         fields = {
             "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
             "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
@@ -25,7 +26,7 @@ class ContainerDetailFilter(FilterSet):
             "goods_desc": ['exact', 'icontains'],
             "goods_desc": ['exact', 'icontains'],
             "goods_qty": ['exact', 'icontains'],
             "goods_qty": ['exact', 'icontains'],
             "goods_weight": ['exact', 'icontains'],
             "goods_weight": ['exact', 'icontains'],
-            "status": ['exact', 'icontains'],
+            "status": ['exact', 'lte','icontains'],
             "creater": ['exact', 'icontains'],
             "creater": ['exact', 'icontains'],
             "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
             "create_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
             "update_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],
             "update_time": ['exact', 'gt', 'gte', 'lt', 'lte', 'range'],

+ 5 - 3
container/views.py

@@ -131,7 +131,6 @@ class TaskViewSet(viewsets.ModelViewSet):
         else:
         else:
             return TaskModel.objects.none()
             return TaskModel.objects.none()
 
 
-
     def get_serializer_class(self):
     def get_serializer_class(self):
         if self.action in ['list', 'destroy','retrieve']:
         if self.action in ['list', 'destroy','retrieve']:
             return TaskGetSerializer
             return TaskGetSerializer
@@ -289,6 +288,7 @@ class ContainerWCSViewSet(viewsets.ModelViewSet):
                 current_task = ContainerWCSModel.objects.filter(
                 current_task = ContainerWCSModel.objects.filter(
                     container=container, 
                     container=container, 
                     tasktype='inbound',
                     tasktype='inbound',
+                    working = 1,
                  
                  
                 ).exclude(status=300).first()
                 ).exclude(status=300).first()
 
 
@@ -357,7 +357,8 @@ class ContainerWCSViewSet(viewsets.ModelViewSet):
                     self.generate_task(container, current_location, allocation_target_location,batch_id,location_list_cnumber.c_number)  # 生成任务
                     self.generate_task(container, current_location, allocation_target_location,batch_id,location_list_cnumber.c_number)  # 生成任务
                     current_task = ContainerWCSModel.objects.get(
                     current_task = ContainerWCSModel.objects.get(
                         container=container, 
                         container=container, 
-                        tasktype='inbound'
+                        tasktype='inbound',
+                        working=1,
                     )
                     )
                   
                   
                     data_return = {
                     data_return = {
@@ -1352,8 +1353,9 @@ class OutTaskViewSet(viewsets.ModelViewSet):
                     )
                     )
                 current_qty = 0
                 current_qty = 0
                 for container in order:
                 for container in order:
+   
                     container_detail_obj = ContainerDetailModel.objects.filter(container_id=container['container_number'],batch_id=demand_id,status=2).all()
                     container_detail_obj = ContainerDetailModel.objects.filter(container_id=container['container_number'],batch_id=demand_id,status=2).all()
-                    container_obj = ContainerListModel.objects.filter(container_code=container['container_number']).first()
+                    container_obj = ContainerListModel.objects.filter(id=container['container_number']).first()
                     if not container_obj:
                     if not container_obj:
                         return {"code": "500", "msg": f"托盘 {container['container_number']} 不存在"}
                         return {"code": "500", "msg": f"托盘 {container['container_number']} 不存在"}
                     if not container_detail_obj:
                     if not container_detail_obj:

+ 36 - 0
data_base/test_erp.py

@@ -0,0 +1,36 @@
+# generate_locations.py
+import os
+import django
+import sys
+
+
+def setup_django():
+    # 使用原始字符串处理Windows路径
+    project_path = "D:/Document/code/vue/greater_wms"
+    sys.path.append(project_path)
+    
+    # 根据实际目录名设置(注意下划线)
+    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'greaterwms.settings')
+    django.setup()
+
+def main():
+    try:
+        # 从正确的应用导入模型
+        from erp.views import Access_token
+        
+        # container_code =["12346", "12345", "1", "2", "7"]
+        container_code =["11111"]
+        
+        token = Access_token.get_token()
+        print('token:',token)
+        print("✅ 方法生成成功!")
+
+        
+    except Exception as e:
+        print(f"❌ 生成失败:{str(e)}")
+        import traceback
+        traceback.print_exc()
+
+if __name__ == "__main__":
+    setup_django()
+    main()

BIN
db copy.sqlite3


BIN
db.sqlite3


BIN
erp/__pycache__/views.cpython-38.pyc


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 65 - 0
erp/views.py


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 62 - 0
logs/boundBill.log


+ 399 - 0
logs/error.log

@@ -3675,3 +3675,402 @@ Traceback (most recent call last):
   File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 423, in finalize_response
   File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 423, in finalize_response
     assert isinstance(response, HttpResponseBase), (
     assert isinstance(response, HttpResponseBase), (
 AssertionError: Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>`
 AssertionError: Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>`
+[2025-05-05 20:53:09,958][django.request.log_response():241] [ERROR] Internal Server Error: /container/container_wcs/
+[2025-05-05 20:58:04,707][django.request.log_response():241] [ERROR] Internal Server Error: /container/container_wcs/
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "d:\language\python38\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "d:\language\python38\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "d:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "d:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 511, in dispatch
+    self.response = self.finalize_response(request, response, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 423, in finalize_response
+    assert isinstance(response, HttpResponseBase), (
+AssertionError: Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>`
+[2025-05-05 21:09:44,707][django.request.log_response():241] [ERROR] Internal Server Error: /container/detail/
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "d:\language\python38\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "d:\language\python38\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "d:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "d:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\mixins.py", line 38, in list
+    queryset = self.filter_queryset(self.get_queryset())
+  File "d:\language\python38\lib\site-packages\rest_framework\generics.py", line 150, in filter_queryset
+    queryset = backend().filter_queryset(self.request, queryset, self)
+  File "d:\language\python38\lib\site-packages\django_filters\rest_framework\backends.py", line 96, in filter_queryset
+    return filterset.qs
+  File "d:\language\python38\lib\site-packages\django_filters\filterset.py", line 243, in qs
+    qs = self.filter_queryset(qs)
+  File "d:\language\python38\lib\site-packages\django_filters\filterset.py", line 230, in filter_queryset
+    queryset = self.filters[name].filter(queryset, value)
+  File "d:\language\python38\lib\site-packages\django_filters\filters.py", line 146, in filter
+    qs = self.get_method(qs)(**{lookup: value})
+  File "d:\language\python38\lib\site-packages\django\db\models\query.py", line 1420, in filter
+    return self._filter_or_exclude(False, args, kwargs)
+  File "d:\language\python38\lib\site-packages\django\db\models\query.py", line 1438, in _filter_or_exclude
+    clone._filter_or_exclude_inplace(negate, args, kwargs)
+  File "d:\language\python38\lib\site-packages\django\db\models\query.py", line 1445, in _filter_or_exclude_inplace
+    self._query.add_q(Q(*args, **kwargs))
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 1532, in add_q
+    clause, _ = self._add_q(q_object, self.used_aliases)
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 1562, in _add_q
+    child_clause, needed_inner = self.build_filter(
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 1478, in build_filter
+    condition = self.build_lookup(lookups, col, value)
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 1297, in build_lookup
+    lhs = self.try_transform(lhs, lookup_name)
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 1341, in try_transform
+    raise FieldError(
+django.core.exceptions.FieldError: Unsupported lookup 'ne' for IntegerField or join on the field not permitted.
+[2025-05-05 21:18:27,995][django.request.log_response():241] [ERROR] Internal Server Error: /wms/inboundBills/
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+sqlite3.OperationalError: no such table: user_profile
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "d:\language\python38\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "d:\language\python38\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "d:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "d:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 497, in dispatch
+    self.initial(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 414, in initial
+    self.perform_authentication(request)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 324, in perform_authentication
+    request.user
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 227, in user
+    self._authenticate()
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 380, in _authenticate
+    user_auth_tuple = authenticator.authenticate(self)
+  File "D:\Document\code\vue\greater_wms\.\utils\auth.py", line 9, in authenticate
+    if Users.objects.filter(openid__exact=str(token)).exists():
+  File "d:\language\python38\lib\site-packages\django\db\models\query.py", line 1225, in exists
+    return self.query.has_results(using=self.db)
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 592, in has_results
+    return compiler.has_results()
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1366, in has_results
+    return bool(self.execute_sql(SINGLE))
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1398, in execute_sql
+    cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 103, in execute
+    return super().execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 67, in execute
+    return self._execute_with_wrappers(
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 80, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\utils.py", line 91, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+django.db.utils.OperationalError: no such table: user_profile
+[2025-05-05 22:09:18,267][django.request.log_response():241] [ERROR] Internal Server Error: /container/out_task/
+[2025-05-05 22:10:23,545][django.request.log_response():241] [ERROR] Internal Server Error: /container/out_task/
+[2025-05-05 22:16:59,251][django.request.log_response():241] [ERROR] Internal Server Error: /container/out_task/
+[2025-05-05 22:21:31,373][django.request.log_response():241] [ERROR] Internal Server Error: /container/container_wcs/
+[2025-05-05 22:25:30,200][django.request.log_response():241] [ERROR] Internal Server Error: /wms/inboundBills/
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+sqlite3.OperationalError: no such table: user_profile
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "d:\language\python38\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "d:\language\python38\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "d:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "d:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 497, in dispatch
+    self.initial(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 414, in initial
+    self.perform_authentication(request)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 324, in perform_authentication
+    request.user
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 227, in user
+    self._authenticate()
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 380, in _authenticate
+    user_auth_tuple = authenticator.authenticate(self)
+  File "D:\Document\code\vue\greater_wms\.\utils\auth.py", line 9, in authenticate
+    if Users.objects.filter(openid__exact=str(token)).exists():
+  File "d:\language\python38\lib\site-packages\django\db\models\query.py", line 1225, in exists
+    return self.query.has_results(using=self.db)
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 592, in has_results
+    return compiler.has_results()
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1366, in has_results
+    return bool(self.execute_sql(SINGLE))
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1398, in execute_sql
+    cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 103, in execute
+    return super().execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 67, in execute
+    return self._execute_with_wrappers(
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 80, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\utils.py", line 91, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+django.db.utils.OperationalError: no such table: user_profile
+[2025-05-05 22:34:09,778][django.request.log_response():241] [ERROR] Internal Server Error: /container/container_wcs/update/
+[2025-05-05 23:03:05,299][django.request.log_response():241] [ERROR] Internal Server Error: /bound/outdetail/
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "d:\language\python38\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "d:\language\python38\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "d:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "d:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.\bound\views.py", line 380, in create
+    data['bound_batch_number'] = OutBatchModel.objects.get(id=data['bound_batch']).batch_number.id
+KeyError: 'bound_batch'
+[2025-05-05 23:04:08,161][django.request.log_response():241] [ERROR] Internal Server Error: /wms/inboundBills/
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+sqlite3.OperationalError: no such table: user_profile
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "d:\language\python38\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "d:\language\python38\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "d:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "d:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 497, in dispatch
+    self.initial(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 414, in initial
+    self.perform_authentication(request)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 324, in perform_authentication
+    request.user
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 227, in user
+    self._authenticate()
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 380, in _authenticate
+    user_auth_tuple = authenticator.authenticate(self)
+  File "D:\Document\code\vue\greater_wms\.\utils\auth.py", line 9, in authenticate
+    if Users.objects.filter(openid__exact=str(token)).exists():
+  File "d:\language\python38\lib\site-packages\django\db\models\query.py", line 1225, in exists
+    return self.query.has_results(using=self.db)
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 592, in has_results
+    return compiler.has_results()
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1366, in has_results
+    return bool(self.execute_sql(SINGLE))
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1398, in execute_sql
+    cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 103, in execute
+    return super().execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 67, in execute
+    return self._execute_with_wrappers(
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 80, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\utils.py", line 91, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+django.db.utils.OperationalError: no such table: user_profile
+[2025-05-05 23:05:26,587][django.request.log_response():241] [ERROR] Internal Server Error: /wms/inboundBills/
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+sqlite3.OperationalError: no such table: user_profile
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "d:\language\python38\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "d:\language\python38\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "d:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "d:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 497, in dispatch
+    self.initial(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 414, in initial
+    self.perform_authentication(request)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 324, in perform_authentication
+    request.user
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 227, in user
+    self._authenticate()
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 380, in _authenticate
+    user_auth_tuple = authenticator.authenticate(self)
+  File "D:\Document\code\vue\greater_wms\.\utils\auth.py", line 9, in authenticate
+    if Users.objects.filter(openid__exact=str(token)).exists():
+  File "d:\language\python38\lib\site-packages\django\db\models\query.py", line 1225, in exists
+    return self.query.has_results(using=self.db)
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 592, in has_results
+    return compiler.has_results()
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1366, in has_results
+    return bool(self.execute_sql(SINGLE))
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1398, in execute_sql
+    cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 103, in execute
+    return super().execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 67, in execute
+    return self._execute_with_wrappers(
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 80, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\utils.py", line 91, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+django.db.utils.OperationalError: no such table: user_profile

+ 407 - 0
logs/server.log

@@ -3859,3 +3859,410 @@ Traceback (most recent call last):
   File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 423, in finalize_response
   File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 423, in finalize_response
     assert isinstance(response, HttpResponseBase), (
     assert isinstance(response, HttpResponseBase), (
 AssertionError: Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>`
 AssertionError: Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>`
+[2025-05-05 20:53:09,958][django.request.log_response():241] [ERROR] Internal Server Error: /container/container_wcs/
+[2025-05-05 20:58:04,707][django.request.log_response():241] [ERROR] Internal Server Error: /container/container_wcs/
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "d:\language\python38\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "d:\language\python38\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "d:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "d:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 511, in dispatch
+    self.response = self.finalize_response(request, response, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 423, in finalize_response
+    assert isinstance(response, HttpResponseBase), (
+AssertionError: Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<class 'NoneType'>`
+[2025-05-05 21:09:44,707][django.request.log_response():241] [ERROR] Internal Server Error: /container/detail/
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "d:\language\python38\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "d:\language\python38\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "d:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "d:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\mixins.py", line 38, in list
+    queryset = self.filter_queryset(self.get_queryset())
+  File "d:\language\python38\lib\site-packages\rest_framework\generics.py", line 150, in filter_queryset
+    queryset = backend().filter_queryset(self.request, queryset, self)
+  File "d:\language\python38\lib\site-packages\django_filters\rest_framework\backends.py", line 96, in filter_queryset
+    return filterset.qs
+  File "d:\language\python38\lib\site-packages\django_filters\filterset.py", line 243, in qs
+    qs = self.filter_queryset(qs)
+  File "d:\language\python38\lib\site-packages\django_filters\filterset.py", line 230, in filter_queryset
+    queryset = self.filters[name].filter(queryset, value)
+  File "d:\language\python38\lib\site-packages\django_filters\filters.py", line 146, in filter
+    qs = self.get_method(qs)(**{lookup: value})
+  File "d:\language\python38\lib\site-packages\django\db\models\query.py", line 1420, in filter
+    return self._filter_or_exclude(False, args, kwargs)
+  File "d:\language\python38\lib\site-packages\django\db\models\query.py", line 1438, in _filter_or_exclude
+    clone._filter_or_exclude_inplace(negate, args, kwargs)
+  File "d:\language\python38\lib\site-packages\django\db\models\query.py", line 1445, in _filter_or_exclude_inplace
+    self._query.add_q(Q(*args, **kwargs))
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 1532, in add_q
+    clause, _ = self._add_q(q_object, self.used_aliases)
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 1562, in _add_q
+    child_clause, needed_inner = self.build_filter(
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 1478, in build_filter
+    condition = self.build_lookup(lookups, col, value)
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 1297, in build_lookup
+    lhs = self.try_transform(lhs, lookup_name)
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 1341, in try_transform
+    raise FieldError(
+django.core.exceptions.FieldError: Unsupported lookup 'ne' for IntegerField or join on the field not permitted.
+[2025-05-05 21:18:27,995][django.request.log_response():241] [ERROR] Internal Server Error: /wms/inboundBills/
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+sqlite3.OperationalError: no such table: user_profile
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "d:\language\python38\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "d:\language\python38\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "d:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "d:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 497, in dispatch
+    self.initial(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 414, in initial
+    self.perform_authentication(request)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 324, in perform_authentication
+    request.user
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 227, in user
+    self._authenticate()
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 380, in _authenticate
+    user_auth_tuple = authenticator.authenticate(self)
+  File "D:\Document\code\vue\greater_wms\.\utils\auth.py", line 9, in authenticate
+    if Users.objects.filter(openid__exact=str(token)).exists():
+  File "d:\language\python38\lib\site-packages\django\db\models\query.py", line 1225, in exists
+    return self.query.has_results(using=self.db)
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 592, in has_results
+    return compiler.has_results()
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1366, in has_results
+    return bool(self.execute_sql(SINGLE))
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1398, in execute_sql
+    cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 103, in execute
+    return super().execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 67, in execute
+    return self._execute_with_wrappers(
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 80, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\utils.py", line 91, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+django.db.utils.OperationalError: no such table: user_profile
+[2025-05-05 21:20:00,667][django.request.log_response():241] [WARNING] Not Found: /cyclecount/qtyrecorviewset/
+[2025-05-05 21:20:05,319][django.request.log_response():241] [WARNING] Not Found: /cyclecount/qtyrecorviewset/
+[2025-05-05 22:09:18,267][django.request.log_response():241] [ERROR] Internal Server Error: /container/out_task/
+[2025-05-05 22:09:41,637][django.request.log_response():241] [WARNING] Not Found: /cyclecount/qtyrecorviewset/
+[2025-05-05 22:09:55,179][django.request.log_response():241] [WARNING] Not Found: /cyclecount/qtyrecorviewset/
+[2025-05-05 22:10:23,545][django.request.log_response():241] [ERROR] Internal Server Error: /container/out_task/
+[2025-05-05 22:16:59,251][django.request.log_response():241] [ERROR] Internal Server Error: /container/out_task/
+[2025-05-05 22:21:31,373][django.request.log_response():241] [ERROR] Internal Server Error: /container/container_wcs/
+[2025-05-05 22:25:30,200][django.request.log_response():241] [ERROR] Internal Server Error: /wms/inboundBills/
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+sqlite3.OperationalError: no such table: user_profile
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "d:\language\python38\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "d:\language\python38\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "d:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "d:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 497, in dispatch
+    self.initial(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 414, in initial
+    self.perform_authentication(request)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 324, in perform_authentication
+    request.user
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 227, in user
+    self._authenticate()
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 380, in _authenticate
+    user_auth_tuple = authenticator.authenticate(self)
+  File "D:\Document\code\vue\greater_wms\.\utils\auth.py", line 9, in authenticate
+    if Users.objects.filter(openid__exact=str(token)).exists():
+  File "d:\language\python38\lib\site-packages\django\db\models\query.py", line 1225, in exists
+    return self.query.has_results(using=self.db)
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 592, in has_results
+    return compiler.has_results()
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1366, in has_results
+    return bool(self.execute_sql(SINGLE))
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1398, in execute_sql
+    cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 103, in execute
+    return super().execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 67, in execute
+    return self._execute_with_wrappers(
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 80, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\utils.py", line 91, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+django.db.utils.OperationalError: no such table: user_profile
+[2025-05-05 22:32:17,035][django.request.log_response():241] [WARNING] Not Found: /cyclecount/qtyrecorviewset/
+[2025-05-05 22:34:09,778][django.request.log_response():241] [ERROR] Internal Server Error: /container/container_wcs/update/
+[2025-05-05 23:00:50,027][django.request.log_response():241] [WARNING] Not Found: /cyclecount/qtyrecorviewset/
+[2025-05-05 23:00:54,677][django.request.log_response():241] [WARNING] Not Found: /cyclecount/qtyrecorviewset/
+[2025-05-05 23:03:05,299][django.request.log_response():241] [ERROR] Internal Server Error: /bound/outdetail/
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "d:\language\python38\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "d:\language\python38\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "d:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "d:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.\bound\views.py", line 380, in create
+    data['bound_batch_number'] = OutBatchModel.objects.get(id=data['bound_batch']).batch_number.id
+KeyError: 'bound_batch'
+[2025-05-05 23:04:08,161][django.request.log_response():241] [ERROR] Internal Server Error: /wms/inboundBills/
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+sqlite3.OperationalError: no such table: user_profile
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "d:\language\python38\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "d:\language\python38\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "d:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "d:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 497, in dispatch
+    self.initial(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 414, in initial
+    self.perform_authentication(request)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 324, in perform_authentication
+    request.user
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 227, in user
+    self._authenticate()
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 380, in _authenticate
+    user_auth_tuple = authenticator.authenticate(self)
+  File "D:\Document\code\vue\greater_wms\.\utils\auth.py", line 9, in authenticate
+    if Users.objects.filter(openid__exact=str(token)).exists():
+  File "d:\language\python38\lib\site-packages\django\db\models\query.py", line 1225, in exists
+    return self.query.has_results(using=self.db)
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 592, in has_results
+    return compiler.has_results()
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1366, in has_results
+    return bool(self.execute_sql(SINGLE))
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1398, in execute_sql
+    cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 103, in execute
+    return super().execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 67, in execute
+    return self._execute_with_wrappers(
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 80, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\utils.py", line 91, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+django.db.utils.OperationalError: no such table: user_profile
+[2025-05-05 23:05:26,587][django.request.log_response():241] [ERROR] Internal Server Error: /wms/inboundBills/
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+sqlite3.OperationalError: no such table: user_profile
+
+The above exception was the direct cause of the following exception:
+
+Traceback (most recent call last):
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "d:\language\python38\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "d:\language\python38\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "d:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "d:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "d:\language\python38\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 497, in dispatch
+    self.initial(request, *args, **kwargs)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 414, in initial
+    self.perform_authentication(request)
+  File "d:\language\python38\lib\site-packages\rest_framework\views.py", line 324, in perform_authentication
+    request.user
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 227, in user
+    self._authenticate()
+  File "d:\language\python38\lib\site-packages\rest_framework\request.py", line 380, in _authenticate
+    user_auth_tuple = authenticator.authenticate(self)
+  File "D:\Document\code\vue\greater_wms\.\utils\auth.py", line 9, in authenticate
+    if Users.objects.filter(openid__exact=str(token)).exists():
+  File "d:\language\python38\lib\site-packages\django\db\models\query.py", line 1225, in exists
+    return self.query.has_results(using=self.db)
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\query.py", line 592, in has_results
+    return compiler.has_results()
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1366, in has_results
+    return bool(self.execute_sql(SINGLE))
+  File "d:\language\python38\lib\site-packages\django\db\models\sql\compiler.py", line 1398, in execute_sql
+    cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 103, in execute
+    return super().execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 67, in execute
+    return self._execute_with_wrappers(
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 80, in _execute_with_wrappers
+    return executor(sql, params, many, context)
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\utils.py", line 91, in __exit__
+    raise dj_exc_value.with_traceback(traceback) from exc_value
+  File "d:\language\python38\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
+    return self.cursor.execute(sql, params)
+  File "d:\language\python38\lib\site-packages\django\db\backends\sqlite3\base.py", line 357, in execute
+    return Database.Cursor.execute(self, query, params)
+django.db.utils.OperationalError: no such table: user_profile
+[2025-05-06 00:25:17,564][django.request.log_response():241] [WARNING] Not Found: /cyclecount/qtyrecorviewset/

+ 56 - 33
templates/src/pages/container/containerlist.vue

@@ -227,6 +227,7 @@
                               <q-list bordered class="rounded-borders">
                               <q-list bordered class="rounded-borders">
                                 <q-expansion-item
                                 <q-expansion-item
                                   v-for="(node, index) in nodeList"
                                   v-for="(node, index) in nodeList"
+                                  v-if="node.value && node.value.length > 0"
                                   :key="index"
                                   :key="index"
                                   group="op-group"
                                   group="op-group"
                                   :caption="`操作类型: ${formatType(node.value[0].operation_type)} ----- 操作时间:${node.value[0].timestamp }`"         
                                   :caption="`操作类型: ${formatType(node.value[0].operation_type)} ----- 操作时间:${node.value[0].timestamp }`"         
@@ -568,8 +569,31 @@ class LinkedList {
       _this.detailForm = true
       _this.detailForm = true
       _this.detailid = e.id
       _this.detailid = e.id
       console.log("detail查询的id是:",_this.detailid)
       console.log("detail查询的id是:",_this.detailid)
-      getauth(_this.detailpathname +'?container='+ _this.detailid)
+      getauth(_this.detailpathname +'?status__lte=2&container='+ _this.detailid)
       .then(res =>{
       .then(res =>{
+        if (res.results.length == 0) {
+          _this.table_detail= [
+          {
+            container: {
+              container_code: '',
+              current_location: '',
+            },
+            batch: {
+              bound_number: '',
+              goods_desc: '',
+              goods_weight: '',
+              goods_qty: '',
+              creater: '',
+            },
+          }
+        ]
+          _this.$q.notify({
+            message: '该托盘暂无物料信息',
+            icon: 'close',
+            color: 'negative'
+          })
+          return
+        }
         _this.table_detail = res.results
         _this.table_detail = res.results
       })          
       })          
       .catch(err => {
       .catch(err => {
@@ -582,49 +606,48 @@ class LinkedList {
     _this.getOperationRecord(e)      
     _this.getOperationRecord(e)      
       },
       },
       getOperationRecord(row) {
       getOperationRecord(row) {
-        var _this = this
-        _this.operate_detail = []
-        var operate_detail_container = []
-        _this.linkedList.clear()
-        getauth('container/operate/?status=1&container=' + row.id)
-          .then(res => {
-            _this.operate_detail = res.results
-            
-            if (_this.operate_detail.length == 0) {
-              _this.linkedList.clear()
-              return
-            }
-            if (_this.operate_detail.length == 1) {
-              _this.linkedList.append(_this.operate_detail)
-              return
-            }
-            operate_detail_container.push(_this.operate_detail[0])
-            for (let i = 0; i < _this.operate_detail.length; i++) {
-              if (_this.operate_detail[i].operation_type == _this.operate_detail[i+1].operation_type) {
-                operate_detail_container.push(_this.operate_detail[i+1])
-              }
-              else {
-                _this.linkedList.append(operate_detail_container)
-                operate_detail_container = []
-                operate_detail_container.push(_this.operate_detail[i+1])
-              }
-            _this.linkedList.append(operate_detail_container)
-            operate_detail_container = []
-          }
-          })
-          .catch(err => {
+  var _this = this;
+  _this.operate_detail = [];
+  var operate_detail_container = [];
+  _this.linkedList.clear();
+  getauth('container/operate/?status=1&container=' + row.id)
+    .then(res => {
+      _this.operate_detail = res.results;
+      if (_this.operate_detail.length === 0) return;
+
+      // 初始化第一个元素
+      operate_detail_container.push(_this.operate_detail[0]);
+
+      for (let i = 0; i < _this.operate_detail.length - 1; i++) {
+        const current = _this.operate_detail[i];
+        const next = _this.operate_detail[i + 1];
+        if (current.operation_type === next.operation_type) {
+          operate_detail_container.push(next);
+        } else {
+          _this.linkedList.append([...operate_detail_container]);
+          operate_detail_container = [next];
+        }
+      }
+
+      // 添加最后一个分组
+      if (operate_detail_container.length > 0) {
+        _this.linkedList.append([...operate_detail_container]);
+      }
+    })
+    .catch(err => {
             _this.$q.notify({
             _this.$q.notify({
               message: err.detail,
               message: err.detail,
               icon: 'close',
               icon: 'close',
               color: 'negative'
               color: 'negative'
             })
             })
           })
           })
+    
       },
       },
       formatType(type) {
       formatType(type) {
         switch (type) {
         switch (type) {
           case 'container':
           case 'container':
             return '组盘'
             return '组盘'
-          case '2':
+          case 'outbound':
             return '出库'
             return '出库'
           case '3':
           case '3':
             return '盘点'
             return '盘点'