前言
监控大屏展示的是结果,本章介绍数据源头——工厂和设备的增删改查管理。
工厂管理
数据模型
工厂使用自关联的树形结构,parentId 指向上级工厂:
总厂 (Id=1, parentId=null)
├── 一车间 (Id=2, parentId=1)
│ ├── 产线A (Id=4, parentId=2)
│ └── 产线B (Id=5, parentId=2)
└── 二车间 (Id=3, parentId=1)
public class Company : AggregateRoot
{
public string CompanyName { get; set; }
public int? parentId { get; set; } // 父工厂ID
public bool IsContainsLowerLevel { get; set; } // 是否含子工厂
public bool IsEnable { get; set; }
}
工厂CRUD Controller
public class CompanyController : BaseController
{
// 工厂列表
public ActionResult CompanyList()
{
var list = _companyAppService.GetAllCompany();
return View(list);
}
// 新增工厂
[HttpPost]
public ActionResult CompanyList_AddCompany(CompanyDtoModel model)
{
_companyAppService.Add(model);
return RedirectToAction("CompanyList");
}
// 编辑工厂
[HttpPost]
public ActionResult CompanyList_EditCompany(CompanyDtoModel model)
{
_companyAppService.Update(model);
return RedirectToAction("CompanyList");
}
// 删除工厂(软删除)
[HttpPost]
public ActionResult RemoveCompany(string companyIds)
{
_companyAppService.Remove(companyIds);
return Json(new { success = true });
}
}
全部使用软删除(IsDeleted = true),不物理删除数据。
设备管理
设备 Facility 表与工厂关联,同时绑定 TCP 传感器编号:
public class Facility : AggregateRoot
{
public string FacilityName { get; set; } // 设备名称
public int CompanyId { get; set; } // 所属工厂
public string Address { get; set; } // 安装位置
public int SensorBN { get; set; } // TCP 传感器编号
// ...
}
传感器上报数据时通过 BN(传感器编号)匹配到具体设备。
用户与工厂权限
用户能看到哪些工厂由 UserCompany 表控制:
-- 给用户分配工厂
INSERT INTO UserCompany (UserId, CompanyId, IsDeleted)
VALUES (1, 2, 0);
用户登录后,系统自动查询所有关联工厂(含子工厂)供切换。
页面入口
| 功能 | URL |
|---|---|
| 工厂列表 | /Company/CompanyList |
| 新增工厂 | /Company/CompanyList_AddCompany |
| 编辑工厂 | /Company/CompanyList_EditCompany |
| 设备管理 | /Facility/FacilityList |
小结
- 工厂用
parentId自关联支持多级树形结构 - 全部采用软删除,数据可恢复
- 设备通过传感器编号
BN关联 TCP 数据源 - 用户-工厂权限通过中间表控制
下一章介绍系统 Logo 和品牌定制的实现。
> 上一篇:第4章 — 前端监控大屏:实时数据展示
> 下一篇:第6章 — 系统Logo与品牌定制
:工厂与设备管理&spm=1001.2101.3001.5002&articleId=163444382&d=1&t=3&u=7ede1a4b63fd4576a1322b692bdff1d4)
285

被折叠的 条评论
为什么被折叠?



