1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dtcloud360-dtcloud

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

DTCloud

Введение

DTCloud — это платформа для быстрой разработки приложений от компании «Цифровые технологии и финансы» (DTCloud), предназначенная для предприятий и промышленных IoT-сетей. Платформа использует BIM/CIM+AIoT-архитектуру и технологии управления данными, чтобы обеспечить визуализацию цифрового двойника и помочь в создании интеллектуальных предприятий и связанных с ними приложений.

DTCloud предлагает модули визуализации BIM/CIM, платформу данных IoT, модуль анализа данных AI, поддерживает интеллектуальные большие экраны, мобильные приложения и веб-страницы для различных конечных точек. Платформа предоставляет множество интерфейсов разработки и проектных модулей, что позволяет быстро разрабатывать решения для интеллектуальных сценариев.

Особенности DTCloud:

  • Централизованное управление данными: передняя часть использует трёхмерное графическое представление данных, централизованное управление данными, поддержку в реальном времени восприятия состояния предприятия и зоны, раннее обнаружение рисков и оптимизацию эффективности работы.
  • Анализ AI и имитационное моделирование: задняя часть предоставляет анализ AI и имитационное моделирование, обеспечивая синхронизацию и контроль между физическими и цифровыми предприятиями, повышая эффективность использования энергии, безопасность, здоровье и уровень интеллектуального управления.
  • Быстрая разработка интеллектуальных решений: DTCloud интегрирует рабочие площадки, зоны и более 50 типов интерфейсов для предприятий, предоставляя множество интерфейсов разработки и проектных модулей для быстрого создания интеллектуальных решений.
  • Низкий порог входа и интеллектуальные продукты: продукты для управления данными могут поддерживать как умные строительные приложения во время строительства, так и умные операционные приложения после завершения строительства, представляя собой интеллектуальный продукт с низким порогом входа для управления жизненным циклом предприятия.

Примечание: для работы с DTCloud требуется версия Python 3.10 или выше, рекомендуется использовать версию 3.10.9. По умолчанию учётная запись администратора имеет имя admin и пароль DTCloud360.

Локальное управление сервисом: (совместимо с конфигурационными файлами .conf и .yaml)

  • Запуск: python dtcloud.py -c dtcloud.yaml
  • Запуск queue_job: python dtcloud.py jobqueue -c dtcloud.yaml

Стандарт написания интерфейса:

# -*- coding: utf-8 -*-
# &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
# DTCloud360
# QQ:35350428
# 邮件:35350428@qq.com
# 手机:13584935775
# 作者:yu.qian
# 公司网址: http://www.dtcloud360.com/
# Copyright 中亿丰数字科技集团有限公司 2012-2025
# 日期:
# 文件:main.py
# 备注:基于Springboot&PEP8规范的控制器的接口类
# &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

# Стандартная библиотека
import io
import logging
import pandas as pd

# Сторонние библиотеки
from dtcloud import http

# Пользовательские модули текущего проекта
from commons.web.decorators import render_json, render_file
from commons.web.objects import SuccessData
from commons.core import CRUDBase

# from dtcloud.addons.BaseException.api_error import AppValidationError, AppResourceError, ValidationError

_logger = logging.getLogger(__name__)


def save_data_to_excel_by_pandas():
    """
    Запись данных в Excel с помощью pandas
    """
    # Заголовок таблицы Excel
    struct_columns = ["Дата", "Количество билетов, купленных онлайн", "Количество билетов, купленных офлайн", "Количество групповых билетов", "Общее количество билетов"]
    # Структура данных должна быть [[]], а длина внутреннего списка должна соответствовать длине заголовка
    datas = [
        ["2022/10/27", 42, 35, 23, 160]
    ]
    df_detail = pd.DataFrame(datas, columns=struct_columns)
    bio = io.BytesIO()

    with pd.ExcelWriter(bio, engine='xlsxwriter', engine_kwargs={'options': {'strings_to_urls': False}}) as writer:
        # Данные анкеты
        df_detail.to_excel(writer, sheet_name='Данные', index=False)
        df_detail_shape = df_detail.shape[1]
        workbook = writer.book
        format_border = workbook.add_format({'border_color': '#e1e4eb'})  # Установить формат границы
        worksheets = writer.sheets
        worksheet1 = worksheets['Данные']
        # Здесь находится ядро, установить формат в соответствии с условиями
        worksheet1.conditional_format(0, 0, 0, df_detail_shape, {'type': 'no_blanks', 'format': format_border})
        writer.save()
        bio.seek(0)
        data = bio.read()
    return data


class DtMockController(http.Controller, CRUDBase):
    """
    Контроллер Mock

    """

    @http.route("/api/project/getProjectData/<int:role_id>", type="http", methods=['GET'], auth="none", sitemap=False,
                csrf=False,
                cors="*",
                description='Получение данных Mock', group='Получение данных Mock')
    @render_json # Декоратор для возврата данных в стандартном формате json
    def get_mock_data(self, **kw):
        """
        Получение чувствительных ресурсов dt
        :param kw:
        :return:
        """
        a = {"mock": "Это данные Mock"}
        return SuccessData(a=a, msg='Получение списка чувствительных ресурсов dt успешно')

    @http.route("/api/getFileData", type="http", methods=['GET'], auth="none", sitemap=False,
                csrf=False,
                cors="*",
                description='Получить данные типа файла', group='Получить данные типа файла')
    @render_file # Декоратор для возврата потока файлов
    def get_file_data(self, **kw):
        data = save_data_to_excel_by_pandas()
        return 'Информация о компании.xlsx', data

Методы queue_job, часто используемые:

# 1. Метод для добавления задания в очередь — использование with_delay() для записи или модели
def button_done(self):
    self.with_delay().print_confirmation_document(self.state)
    self.write({"state": "done"})
    return True

# 2. Определение зависимостей
def

``` ```
button_chain_done(self):
    self.ensure_one()
    job1 = self.browse(1).delayable().generate_thumbnail((50, 50))
    job2 = self.browse(1).delayable().generate_thumbnail((50, 50))
    job3 = self.browse(1).delayable().generate_thumbnail((50, 50))

    """
    На job2 вызывается метод on_done (job3), это означает, что job2 будет выполнен только после завершения job3.
    Аналогично, job1 будет выполнен только после выполнения job2. Таким образом создаётся цепочка зависимостей, в которой сначала выполняется job3, затем job2 и, наконец, job1.
    """
    job1.on_done(job2.on_done(job3)).delay()
# 3、高阶用法介�оведение chain & group
"""
Здесь chain обозначает последовательность заданий, которые должны быть выполнены по порядку, а group обозначает задания, которые могут выполняться параллельно.

Использование chain() аналогично использованию нескольких вложенных вызовов on_done(), но более читаемо. Эти два подхода можно комбинировать для создания диаграммы.

Например, мы можем сгруппировать задания [A], чтобы предотвратить выполнение другой группы заданий [B]. Задания группы [B] будут выполнены только тогда, когда все задания группы [A] завершатся.
"""
def button_done(self):
    group_a = group(self.delayable().method_foo(), self.delayable().method_bar())
    group_b = group(self.delayable().method_baz(1), self.delayable().method_baz(2))
    chain(group_a, group_b).delay()
    self.write({"state": "done"})
    return True

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
JavaScript и 6 других языков
AGPL-3.0
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/dtcloud360-dtcloud.git
git@api.gitlife.ru:oschina-mirror/dtcloud360-dtcloud.git
oschina-mirror
dtcloud360-dtcloud
dtcloud360-dtcloud
DTCloud-4.19