工厂环境监测系统实战(五):工厂与设备管理

前言

监控大屏展示的是结果,本章介绍数据源头——工厂和设备的增删改查管理。

工厂管理

数据模型

工厂使用自关联的树形结构,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与品牌定制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值