Sign inSign up

doipc/erpwebapi

By doipc

•Updated about 1 month ago

制造业,企业资源规划ERP 2.0,WebApi 业务接口 ERP Web API business interface

Image
API management
Web servers
Content management system
1

1.8K

doipc/erpwebapi repository overview

⁠ERP 2.0 制造业 WebApi

License Docker GitHub commit activity Pulls NuGet Version NuGet Downloads

ERP 2.0 是针对中型规模的制造业企业而设计的一套先进的企业资源规划系统。它结合了现代企业管理理念与信息技术,旨在帮助企业实现业务流程的优化、资源整合和决策支持,以提升企业的运营效率和竞争力。

ERP 2.0 系统具有以下几个显著特点:

集成性:

  • ERP 2.0 能够实现企业各个部门和业务流程之间的无缝衔接,确保数据的一致性和实时性。

  • 从产品管理、采购管理、生产管理到销售管理等各个环节,都能通过统一的平台进行管理和协调。

灵活性:

  • 考虑到中型制造业企业的多样性和个性化需求,ERP 2.0 提供了丰富的配置选项和定制化功能。

  • 企业可以根据自身业务特点和流程,灵活调整系统功能和界面,以满足特定的管理需求。

智能性:

  • 借助先进的数据分析技术和智能算法,ERP 2.0 能够帮助企业挖掘数据价值,提供智能决策支持。

  • 通过数据分析和预测,企业可以更好地把握市场动态、优化生产计划、控制成本风险。

可扩展性:

  • 随着企业的发展和业务拓展,ERP 2.0 系统能够支持企业的持续升级和扩展。

  • 无论是增加新的功能模块、接入新的业务数据,还是与其他系统进行集成,ERP 2.0 都能提供稳定可靠的技术支持。


⁠解决方案架构
NameDescriptionVersion
Erp.UI界面层.NET 8.0 And .net 4.8
Erp.WebAPIAPI 接口层.NET 8.0
Erp.Dtos数据传输对象.NET 8.0
Erp.Managers业务逻辑层.NET 8.0
Erp.Services数据服务层.NET 8.0
Erp.Domain领域模型.NET 8.0
Erp.Entity数据实体层.NET 8.0
Erp.Infrastructure基础设施层.NET 8.0
IPC.Industry基于 ARM 的工业物联网(IoT)C And C++
PCB.Industry基于 FPGAs 的嵌入式硬件Altium 2022
⁠项目框架结构
Base NameDescription#Expand NameDescription
Erp.Managers.CRM客户关系管理-/-Erp.Managers.APS高级计划排程/排产
Erp.Managers.DM工程设计及工艺管理-/-Erp.Managers.MES生产制造执行
Erp.Managers.HR人力资源管理-/-Erp.Managers.EM设备资源管理
Erp.Managers.OA办公协同及自动化-/-Erp.Managers.GM物料计划管理
Erp.Managers.PM业务及订单管理-/-Erp.Managers.OM外协委外管理
Erp.Managers.QM质量控制与改善管理-/-Erp.Managers.SCM供应链管理
Erp.Managers.WH仓库和库存管理-/-Erp.Managers.KPI考核与数据统计
Erp.Managers.SYS系统基础-/-Erp.Managers.FM财务业务一体化

图

  • [!NOTE]
  • APS 高级计划排程/排产,部分功能描述
  • 业务实现
  • 生产资源归集
  • 工艺树关系
  • 设备关系
  • 人员关系
  • 抢占式任务调度模型
  • 资源匹配策略
  • 以下将大致介绍,系统中所涉及 APS 模块的大致实现原理,随着系统的版本迭代可能描述与实际功能有一定的区别
⁠业务实现
  • 生产资源归集:包括人员排班、生产日历、设备资源、基础工步、工艺流程和工步定额等功能,用于收集和管理生产相关的各类信息。

  • 业务逻辑:包括工艺树关系、设备关系、人员关系和抢占式任务调度模型等功能,用于实现自动化的生产计划和排程。

  • 资源匹配策略:根据工艺流程和设备、人员等资源的情况,制定合理的排产策略,确保生产任务的平均分配和资源的充分利用。

  • 实时监控与报警:实时监控生产进度和设备状态,当出现异常情况时及时报警并采取相应的措施。

  • 历史数据查询与分析:提供历史数据的查询和分析功能,帮助用户了解生产过程中的问题和改进方向。

  • 系统集成接口:提供与其他信息系统的集成接口,实现数据的共享和交换,提高信息的利用率和准确性。

⁠生产资源归集
  • 人员排班,规定工作时间及出勤模式,每天的时间节点和时长,依据工作时间段进行动态排产。

  • 生产日历,规定排产的工作日依据,排除国家法定节假日,企业规定的节假日。

  • 设备资源,设备与工步关联,设备的状态是否支持排产,排产比例,设备状态及健康指标,设备日历。

  • 基础工步,企业制造所涉及的所有加工工序,工序所采用的设备,工序所使用的物料,工序所对应的定额,工序所对应的加工时间、流转时间、前等待时间、后等待时间等。

  • 工艺流程,根据产品的实际要求,组合不同的工艺流程及顺序,实现产品流程化。

  • 工步定额,每种工步根据规格尺寸,表面积、厚度、体积等匹配模型,测定所需的加工时间,定额时间,检验时间等。

⁠工艺树关系
  • 产品工艺流程创建后,根据流程的顺序,自动生成开始时间/结束时间关系树。

  • 生成开始时间/结束时间时,结合上下道流程的岗位划分,自动计算流转时间。同岗位、同工段、同部门、跨部门、跨车间、跨厂区等,不同的条件所产生的流转时间是不同的。

  • 工艺流程中每一个工步所对应的,生产设备、[检验设备]、BOM清单和尺寸、自动定额匹配、自动加工时间匹配。

⁠设备关系
  • 设备的最大长度、最大外径、最大重量、精度等级。

  • 设备的生产日历、工作时间设置(排产范围判断)、工作班次设置、设备停止日期(排产截止日期)。

  • 设备换单时间、操作人员(优先级排序)、设备的依赖关系(人、料)

  • 具体生产计划任务,根据策略排产并分配到设备,人员考勤到岗后,系统根据策略分配到人。

⁠人员关系
  • 人员出勤规则、班组、岗位、工段、部门、车间、厂区。

  • 资源约束(常做的工序及优先级)、操作设备(优先级)、技能评级。

  • 加工任务的人员依赖关系(设备优先/人员优先),用来区分加工任务的产能权重比。

  • 开发对接考勤系统,操作工上班到岗后,系统根据预设策略(任务优先级、操作设备优先级)自动分配到人员。

⁠抢占式任务调度模型
  • 设备时间片概念,快速响应任务请求,提高订单任务的均衡性和设备资源的利用率。

  • 可用时间片搜索,时间片的申请与创建,时间的保持与锁定(订单交期锁定),时间片的自动弹性伸缩(伸缩极限,不能无限被延误,要有一个范围)。

  • 前推后拉的概念,根据排产计划,将工序按计划时间顺序逐步推移,以实现对后续生产的推动。结合实际生产完成情况,对后续的生产计划进行微调。

⁠资源匹配策略
  • 工艺流程分解后,加工任务应该平均分配到相关设备、相关人员。

  • 每天滚动排产,按照订单的优先级、客户优先级顺序,当日抢占式滚动排产。

  • 滚动,包括设备的循环滚动查找可用时间片,相关设备列表的循环滚动,避免设备出现死锁、饥饿等问题。

  • 人员到岗分配策略,根据人员以往操作设备的习惯,设备操作优先级排序,优先操作熟悉的常用的设备。

  • 人员和设备绑定,生产任务是分配到设备(或人员),操作者考勤到岗后系统会发出通知(借助人脸考勤机),系统会根据策略自动创建加工任务单(车间负责人需要确认),分配到岗人员。

  • 设备占用率,设备利用率,任务完成率,生产稼动率,设备在生产过程中的有效利用程度。

  • 设备在计划时间内创造的价值所消耗的时间及比重。哪种排产结果是最优解(效率/交期/成本)的平衡。


⁠Docker 运行项目(推荐使用一键部署脚本)
  • [!NOTE]
  • 先决条件
  • 已安装 Docker 并正常运行
  • 已创建 Docker 数据持久化根目录(可选,脚本会自动创建子目录):
  • Windows: D:\VolumesDocker
  • Linux: ~/docker-volumes
  • 脚本支持自动选择数据库(PostgreSQL / MySQL / SQL Server)并创建所需目录

⁠方式一:脚本部署(推荐)

脚本功能:

  • 自动创建 Docker 网络(my-network)
  • 可选数据库类型(PostgreSQL 默认、MySQL/MariaDB、SQL Server)
  • 可选是否删除旧数据
  • 自动等待数据库就绪
  • MySQL 分支可选自动安装 phpMyAdmin
  • 自动拉取并启动 Erp.WebAPI 容器
  • 部署完成后可选设置容器开机自启

Linux / macOS(bash)

从 Gitee 下载并执行:

# 下载脚本到本地
wget https://raw.giteeusercontent.com/doipc/Erp.Toolkit/raw/main/deploy.sh -O deploy.sh

# 执行
bash deploy.sh

或从 GitHub 下载:

# 下载脚本到本地
wget https://raw.githubusercontent.com/doipc/Erp.Toolkit/refs/heads/main/deploy.sh -O deploy.sh

# 执行
bash deploy.sh

Windows(PowerShell)

# 下载脚本到本地
Invoke-WebRequest -Uri "https://raw.giteeusercontent.com/doipc/Erp.Toolkit/raw/main/deploy.ps1" -OutFile deploy.ps1

# 执行
powershell -ExecutionPolicy Bypass -File .\deploy.ps1

⁠方式二:手动执行(备选)
  • 创建网络
docker network create my-network
  • 创建 MariaDB 数据库容器,初始化root密码,数据持久化挂载点设置,端口映射,网络设置
docker run --name Mariadb \
		--network=my-network \
		-e MYSQL_ROOT_PASSWORD=sasa \
		-v D:\VolumesDocker\Mariadb:/var/lib/mysql \
		-p 3306:3306 \
		-d mariadb:lts-jammy
  • 创建 phpMyAdmin 数据库 Web 管理工具容器,端口映射,网络设置(可选)
docker run --name phpMyAdmin \
		--network=my-network \
		-e PMA_HOST=Mariadb \
		-e PMA_PORT=3306 \
		-p 8081:80 \
		-d phpmyadmin:latest

  • 创建 Erp.WebAPI 项目容器,端口映射,网络设置
docker run --name Erp.WebAPI \
		--network=my-network \
		-v D:\VolumesDocker\AppUpload:/userData \
		-p 80:8080 \
		-d doipc/erpwebapi:latest

  • [!TIP]
  • Docker 启动 Erp.WebAPI 后需要到 app 目录,修改 appsettings.json 配置文件
  • 包括 Authentication Jwt Token 的 Sign 签名密码
  • 包括 SMTP 邮箱的 Password 密码
  • 以及其它的一些 用户机密信息
  • 脚本部署时,这些机密信息已通过环境变量注入
  • 若有问题请发 Issues 上报,对于已知的错误欢迎 PR
  • Storing keys in a directory '/home/app/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed. For more information go to https://aka.ms/aspnet/dataprotectionwarning⁠

@Andy :+1: This project looks great - it's ready to pull! :shipit:

Tag summary

Content type

Image

Digest

sha256:5a49811f7…

Size

100.4 MB

Last updated

about 1 month ago

docker pull doipc/erpwebapi