跳转到内容

项目信息

项目信息是企业内部的管理类项目台账(含内部研发项目、为实现营销订单而成立的交付项目),考虑到其作为项目管理、产值计价等生产管理子应用的基础数据,设计为一个独立应用,便于各子应用复用。

  1. 项目清单:以树表视图维护项目基础信息,实现项目的增删改查,支持项目集与子项目的层级拆分
  2. 项目团队:随项目信息一并维护项目经理与项目成员,并确定其团队角色(不设独立管理入口)
  3. 项目看板:以看板视图按项目状态查看项目
  4. 项目地图:以地图视图按项目地点查看项目
  5. 统计分析:按项目状态、项目类型、利润中心对项目进行多维度统计
  6. 基础设置:项目类型、项目状态、项目成员角色等项目相关数据字典的维护
  7. 暂不实现:任务分解、任务排期、工时与工效分析(由同级【项目管理】子应用承接)
  8. 暂不实现:产值计价、回款与开票跟踪(由同级【产值计价】子应用承接)
  9. 暂不实现:项目预算/成本管理、项目变更与验收、项目产出物管理
  • 一物一树:项目集—子项目的拆分由上下级关系承载,以全编码/全名称冗余路径实现层级过滤与展示
  • 按项目的业务权限:以项目成员为授权单元实施数据权限,权限范围均为「限所在项目」;项目成员失效(启用=否)即视为脱离本项目

解决方案: EIM
应用域: 生产管理 - PM
应用名称: 项目信息 - Project
估算定价: 0 元/年

名词释义
项目项目是指在特定的时间、预算和资源限制下,为了实现一组明确的目标和成果而进行的一次性工作。项目通常具有以下特征:
独特性:每个项目都是独特的,即使目标相似,项目的具体条件、环境和执行方式也会有所不同。
临时性:项目有明确的开始和结束时间,不是持续不断的活动。
具体目标:项目旨在实现一个或多个具体的目标和成果而进行的一次性工作。
资源约束:项目在执行过程中会受到时间、成本和人力资源等多方面的限制。
组织结构:项目通常需要一个专门的团队来管理和执行,这个团队成员可能包括来自不同部门或组织。
项目信息企业内部管理项目,可以是企业内部研发项目,也可以是为实现营销订单而成立的项目
项目集一组项目的集合,也可以说是一个大的项目(即项目集),拆分成若干小的项目进行实施、管理
子项目将项目集拆分后的下级项目,子项目仍可拆分
利润中心企业内部独立核算的经营主体/责任中心,由脚手架组织机构维护;项目关联利润中心后,用于产值、统计的经营归属
treeView-beta
生产管理/
    项目管理
        项目清单__项目看板__项目地图 ##树表视图维护项目,项目状态看板视图、项目地点地图视图
    基础设置
        项目类型 ##数据字典,*根据客户需要建立*
        项目状态 ##数据字典,系统内置,默认:未开工
        项目成员角色 ##数据字典,系统内置项目经理、成员,*可扩展定义*
        ………… ##其他项目相关数据字典
    统计分析 ##按项目状态、项目类型、利润中心统计项目数量与工期分布

项目信息主线流程

flowchart LR;
    A(营销订单) -.-> B(项目信息) --> C[[项目管理]]
    B -.-> D[[产值计价]]
    A --> D;

    classDef key fill:#fef9c3,stroke:#ca8a04,color:#111
    classDef branch fill:#E5F6DA,stroke:#569230,color:#111;
    class A,C,D branch;
    class B key;

需求编号 RQ-Project-{MMNN}:{MM} 为模块序号(按「功能设计」菜单树顺序,两位补零),{NN} 为模块内需求序号(两位补零)。编号一经分配即锁定,不复用、不回收。

编号需求描述优先级验收标准关联对象
RQ-Project-0101以树表视图查看项目清单,实现项目的增删改查;项目的上下级关系承载项目集—子项目的层级拆分,子项目仍可继续拆分P0存在子项目时树表可逐级展开,展开后的层级与parent关系一致;末级项目无展开入口tabPMProject.parent、tabPMProject.children
RQ-Project-0102【项目经理】关联团队成员时,该成员在tabPMPorjectsEmployees中的role置为项目经理;取消关联后将该成员enable置为否P0关联后该成员团队角色显示为「项目经理」且enable=是;取消关联后enable=否tabPMProject.manager、tabPMPorjectsEmployees.role
RQ-Project-0103【项目成员】关联团队成员时,该成员role置为项目成员;取消关联后将该成员enable置为否P0关联后该成员团队角色显示为「项目成员」;取消关联后enable=否tabPMProject.members、tabPMPorjectsEmployees.role
RQ-Project-0104本应用不设团队成员的独立管理入口,团队成员仅随项目信息的【项目经理】【项目成员】字段一并维护P1菜单树中不存在「项目团队」页面;新增/移除成员只能在项目信息表单内完成tabPMPorjectsEmployees
RQ-Project-0105保存项目时按编码规则生成冗余路径:fullCode = {parent.fullCode}${code}、longName = {parent.longName}${name}P0在项目集A下新建子项目B后,B.fullCode = A.fullCode + $ + B.code,B.longName = A.longName + $ + B.name,两者均以父级路径为前缀tabPMProject.fullCode、tabPMProject.longName
编号需求描述优先级验收标准关联对象
RQ-Project-0201以看板视图按projectStatus分列查看项目,默认不显示#竣工的项目P1打开看板时「竣工」列默认隐藏,勾选后可见;各列项目数与清单按状态过滤后的数量一致tabPMProject.projectStatus
编号需求描述优先级验收标准关联对象
RQ-Project-0301以地图视图按poid查看项目地点,可按projectStatus显示、隐藏P1poid为空的项目不在地图打点;取消勾选某状态后该状态项目打点同步消失tabPMProject.poid、tabPMProject.projectStatus
编号需求描述优先级验收标准关联对象
RQ-Project-0401项目类型取自数据字典项目类型,根据客户需要建立,非系统内置P1在基础设置中新增项目类型后,项目表单的projectType可选到该类型tabPMProject.projectType
RQ-Project-0402项目状态复用已上线数据字典 #ProjectStatus(分类 营销管理/CRM),本应用不重复定义字典项;默认项为未开工,作为新建项目的默认状态P0新建项目保存后,状态标签显示为「未开工」;字典项与汇总清单 #ProjectStatus 完全一致tabPMProject.projectStatus
RQ-Project-0403项目成员角色系统内置项目经理、项目成员两项,可在项目成员下扩展自定义子角色(如前端、后端、测试、运维)P1在「项目成员」下新增子角色后,项目成员表单的role可选到该子角色tabPMPorjectsEmployees.role
编号需求描述优先级验收标准关联对象
RQ-Project-0501统计维度支持:项目状态、项目类型、利润中心、计划完成时间区间P1选择任一维度组合后,统计结果按该组合分组,分组数与该维度字典项数一致tabPMProject.projectStatus、tabPMProject.projectType、tabPMProject.profitCenter
RQ-Project-0502统计指标包含:项目数量、状态分布占比、计划工期合计、超期项目数;超期判定为planEnd已过且projectStatus不为竣工P1状态分布占比之和为 100%;构造一条planEnd早于当前日期且状态非「竣工」的项目,其被计入超期项目数tabPMProject.planEnd、tabPMProject.projectStatus
RQ-Project-0503支持下钻至项目清单明细,统计结果可导出P2点击任一统计分组后跳转至项目清单并自动带出该分组过滤条件;导出文件行数与分组内项目数一致tabPMProject
编号需求描述优先级验收标准关联对象
RQ-Project-0601存在CRM营销管理应用时,可从营销管理-销售订单表格行中直接生成项目信息,并将利润中心、客户、客户项目、订单设为销售订单中相关属性。注入:关系字段、按钮+表单P1在销售订单行点击生成后,新建项目的profitCenter、customer、customerProject、order与源订单对应属性一致tabPMProject.profitCenter、tabPMProject.customer、tabPMProject.customerProject、tabPMProject.order、tabCRMOrder(外部)
---
config:
    theme: base
---
erDiagram
    direction LR
    subgraph **生产管理**
        P[tabPMProject项目信息] {
            long id "ID"
            string code "编码"
            string fullCode "全编码"
            string? fullName "全称"
            string name "名称"
            string longName "全名称"
            poi poid "地图坐标"
            string profile "简介"
            md remark "备注"
            file files "附件"
            int order "排序"
            bool enable "启用"
            ref parent "上级"
            refs children "子级"
            date planStart "计划开始时间"
            date planEnd "计划结束时间"
            int planDays "计划工期"
            date start "实际开始时间"
            date end "实际结束时间"
            int days "实际工期"
            kv projectStatus "项目状态"
            kv? projectType "项目类型"
            ref manager "项目经理"
            refs members "项目成员"
            ref? profitCenter "利润中心"
            ref? customer "客户"
            ref? customerProject "客户项目"
            ref? order "订单"

            date createdAt "创建日期"
            ref createdBy "创建人"
            date updatedAt "最后修改日期"
            ref updatedBy "最后修改人"
        }
        PE[tabPMPorjectsEmployees项目成员] {
            ref project "项目"
            ref employee "员工"
            kv role "团队角色"
            bool enable "启用"
        }
    end
    E[employee员工]
    C[tabCRMOrder销售订单]
    V[tabPMValue产值计价]
    T[tabPMTask任务]

    P ||--o{ PE : ""
    E ||--o{ PE : ""
    P ||..o{ V : ""
    P ||..o{ T : ""
    C ||..o| P : ""
  • 项目经理、项目成员为角色(数据字典项目成员角色的字典项),由本业务维护
  • PMO 为群组,由脚手架组织机构维护
  • 项目成员失效(启用=否)时,视为非本项目成员
功能项目经理成员PMO
项目清单管理,限所在项目查看,限所在项目✓
项目看板/项目地图查看,限所在项目查看,限所在项目✓
统计分析查看,限所在项目查看,限所在项目✓
基础设置——✓

无

  1. 通用约定:
    1. 区分两类动作:提醒 = 发送至指定个人的系统消息;通知 = 发送至群聊的消息
    2. 标 ※ 的规则,在启用【项目管理】子应用后禁用,以其规则替代
    3. 员工离职、团队成员失效时,不再发送相应提醒
  2. 事件触发(实时):
    1. 新建项目时,通知到生产群:项目名称、项目经理、计划开始时间-计划完成时间
  3. 到期预警(按提前量触发):
    1. ※项目计划完成时间前 15d/7d/1d,提醒项目经理
  4. 周期报表(定时发送):
    1. ※每月 1 日、每周一,通知到生产群:本月/本周计划竣工的项目清单,并提醒各项目经理
  • 项目信息:tabPMProject.fullCode : {parent.fullCode}${code}
  • 项目信息:tabPMProject.longName : {parent.longName}${name}
  • 项目信息:tabPMProject.files : 项目管理/{date(yyyy)}/{name}
  • 应用:
    • 强依赖:有巢脚手架(v0.5.2.20260825)
    • 弱依赖:营销管理(CRM v1.1.0.20260825)
  • 插件:无
  • 无

项目状态 #ProjectStatus | 分类:营销管理/CRM

项目成员角色 #ProjectMemberRole | 分类:生产管理/PM

名称编码启用颜色图标父级编码说明
项目经理11#1677ff系统
项目成员21#13c2c2系统,可扩展定义

项目类型 #ProjectType | 分类:生产管理/PM

名称编码启用颜色图标父级编码说明
内部研发11#1677ff可扩展定义
外部交付21#13c2c2可扩展定义
  1. 表名 tabPMPorjectsEmployees 疑似拼写错误(Porjects),建议统一为 tabPMProjectsEmployees,需同步修改同级《项目管理》文档的实体关系
  2. 字段名 manager/members/profitCenter 已按 camelCase 规范统一;《产值计价》中同一含义写作 profit,三份文档口径不一致,需统一
  3. 数据字典项目状态、项目类型在原实体关系中无承载字段,已新增 projectStatus、projectType 两个字段,需确认既有的落库方式
  4. planDays、days 的计算口径(是否由计划/实际起止日期自动计算)未明确,暂未纳入需求清单
  5. 「暂不实现」范围依据同级【项目管理】【产值计价】子应用的职责分工推导,需确认
  6. 估算定价已按 V1.2.0 定为 0 元/年(随基础应用免费提供);原 2400 元/年估算(频次 3 / 价值 3 / 复杂度 3)不再适用,如需单独计价请重新确认
  7. 文件存储目录模板中 date 的取值字段(创建日期 / 计划开始时间)未明确
  8. 已核对数据字典汇总清单:项目状态 与已上线的 #ProjectStatus(分类 营销管理/CRM,字典项 未开工/筹建/在建/收尾/竣工/停工)语义等价,已改为复用行(不重复定义字典项),文档内状态取值同步由「完工」改为「竣工」;项目类型、项目成员角色 汇总清单中无语义等价字典,按新增登记,请评审确认可否并入汇总清单
  9. 编码规则原写为 {parent.code}${code},三级及以上项目会丢失上层路径,已按 longName 的对称写法改为 {parent.fullCode}${code},需确认
  10. 「可提炼插件 · 树形基础资料维护」为本次新增提议,需确认是否纳入插件规划

按 2026-10-09 版《需求分析设计文档规范》重新优化:新增 RQ-Project-0101 ~ RQ-Project-0601 共 14 条带编号需求,「业务逻辑及设计」改为需求清单表;数据字典已查汇总清单——项目状态 与已上线的 #ProjectStatus(营销管理/CRM)语义等价,由新增改为复用行,文档内状态取值同步由「完工」改为「竣工」,项目类型、项目成员角色 维持新增并补全「启用」列与「分类」标注,编码按状态类自 0 起、其他类自 1 起重排,团队角色图标改用 ph 源;功能设计菜单树将「基础设置」独立成目录并置于统计分析之前;实体关系补充 createdOrg / createdDept;编码规则修正为 {parent.fullCode}${code};规范文件存储目录与版本记录的书写格式;清理已失效的待确认事项并新增 3 项

因继承表功能不完善,将tabProjectBase项目基础合并至tabPMProject项目信息;将应用名称实施项目改为项目信息,定价为0元

按《需求分析设计文档规范》重构:补全 YAML Frontmatter 与功能清单/核心机制/应用元数据,规范 mermaid 语法(flowchart LR、treeView-beta)与实体关系的默认字段、外部表约束,数据字典补齐名称/编码/颜色/图标/父级编码五要素,补充可提炼插件与待确认事项

初始版本