# generate_locations.py
import os
import django
import sys

# fun:get_pallet_count_by_batch: 根据托盘码查询批次下托盘总数
# fun:get_location_type: 根据托盘数目获取库位类型
# fun:updata_location_container_link: 更新库位和托盘的关联关系
# fun:get_batch_status: 获取批次状态
# fun:get_batch: 获取批次
# fun:get_location_list_remainder: 获取可用库位的c_number列表
# fun:get_min_list_index: 获取最小的库位
# fun:get_location_by_type_remainder: 根据库位类型获取库位
# fun:get_location_by_type: 第一次入库,根据库位类型获取库位
# fun:get_location_by_status: 根据库位状态获取库位
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():

    from container.views import OutTaskViewSet

    testtask = OutTaskViewSet()

    # count =testtask.get_batch_count_by_boundlist("2")
    # if not count:
    #     print("❌ 批次下没有可用的库位,请检查批次号")
    #     return
    # print(f"[1]批次下可用的库位数:{count}")
    # location_demand = testtask.generate_location_by_demand(count)
    # if not location_demand:
    #     print("❌ 库位需求生成失败,请检查托盘编码")
    #     return
    # print(f"[2]库位需求:{location_demand}")
    # for demand_id, demand_qty in count.items():
    #     print (f"需求{demand_id}的库位数:{demand_qty}")

    #     container_list = testtask.get_location_by_status_and_batch(1,demand_id)
    #     if not container_list:
    #         print("❌ 库位获取失败,请检查托盘编码")
    #         return
    #     print(f"[2]库位:{container_list}")
    #     # container_list是dict
    #     container_id_list = container_list.keys()
    #     print(f"[3]库位id列表:{container_id_list}")
    #     print("✅ 方法生成成功!")

    #     container_order = testtask.get_order_by_batch(container_id_list)
    #     if not container_order:
    #         print("❌ 订单获取失败,请检查托盘编码")
    #         return
    #     print(f"[4]订单:{container_order}")
    #     # 根据container_order(dict)的值进行排序
    #     sorted_order = sorted(
    #         container_order.values(),
    #         key=lambda x: (
    #             int(x['location_type'][-1]),  # 提取T后的数字并转为整数
    #             -x['location_c_number']       # 按location_c_number降序
    #         )
    #     )

    #     print(f"[5]排序后的订单:{sorted_order}")




if __name__ == "__main__":
    setup_django()
    main()