工程物料管理信息化建设(一)——什么是工程物料管理系统

部分图片引用自AVEVA官方资料

#引言#
不知不觉在这条路上走过十年,从最初的购买商业软件,到现在完全自主开发并投入使用,有太多的感悟和值得总结的地方,我准备把这些年的心得体会分享出来,让更多的人了解我们做的事情,参与进来,一起推动工程物料管理信息化系统的建设和发展。

我用过的第一款材料管理软件叫VPRM,AVEVA旗下产品,更准确的说是一款项目资源管理软件,虽然早已退出主流序列,但是反映出的材料管理理论体系依然非常值得我们学习和借鉴。以下依托VPRM介绍材料管理软件的理论知识,希望能让大家了解什么是材料管理软件,它的作用是什么。

这里写图片描述
#提出问题#
工程项目执行是非常复杂的过程,涉及到很多流程,这些流程需要很多部门和组织的通力合作,如业主、各设计专业、采购和施工部门、以及供应商和施工分包商。在整个项目运行周期里将产生数量庞大的有关技术、财务、管理的数据和文件。这些项目数据基于项目组织结构又分别存储在不同时区、不同地域、不同组织和部门的个人计算机上。我们该如何解决这个问题呢?
##材料管理软件应该做什么##
为整个项目的全生命周期提供风险管理,以及项目控制的工具,并能有效改善项目管理的质量,降低项目总体成本。

材料管理软件应该协助用户完成:

  1. 将正确的材料在正确的时间,运输到正确的地点
  2. 将正确的文档在正确的时间,分配给正确的人
  3. 进度和每项开支都在严格的监控之下
  4. 管理决策将基于最新的,当前的,及时的数据
  5. 前后一致的历史数量将可以被复用到新的项目
  6. 随时为管理汇总和分析提供精确而详尽的数据

##软件的价值体现在哪些方面##

  1. 通过与三维工厂设计系统通力配合(基于工艺设计的等级的一致性,将会为材料管理增加保障和活力),将又会为项目节省时间和成本
    这里写图片描述
  2. 快速执行。采用预装载的模板数据,可以让用户自由地选择全部或者部分执行材料管理流程,使软件工作流程融入到现有的系统和流程上去
  3. 准确详尽的管理数据意味着可以减少浪费,优化采购流程,调整时间节点和顺序,控制计划,减少材料库存时间和费用
  4. 一致和可控的文件将会改进项目质量,并可通过取得项目第一手资料,确定正确时间,减少人工时
  5. 合理的人机交互界面为多项目团队提供协调性和高访问性,更能提高多专业多团队协同工作的效率
  6. 通过控制所有关键资源:材料, 文档, 进度, 费用,确保项目高质量实施,实现项目高效的前瞻性的管理
  7. 让项目管理人员对项目工程材料及相关数据了然于胸,并能确保这些项目数据的可访问性。提高项目工程材料及相关数据管理精细化程度。

##软件应该帮用户做到哪些事情##
###项目进度全局纵览###
项目的所有工程材料及相关数据对于授权用户是开放并有效的。基于对象模型的管理方式,使得每个实体化的单项都能在P&ID阶段, 3D实体建模阶段,到材料管理阶段,得到跟踪和管理。通过这种方式,为项目管理人员提供了一个全局纵览之下的项目工程材料及相关数据进度,更好的掌握项目的全局信息。
这里写图片描述
###变更管理###
所有的设计部门的数据将被记录,进度报告里将会包含设计变更的信息。监控一个项目时,提前知道变更的状态是重要的需求之一。将这些变更通知以Email的形式分发给正确的人,这些工作都不需要人为干预。比如,当一个材料需求发布之后,这个发布将作为变更信息提交并电邮给指定的相关人员。
###信息管理###
在传统的项目管理中,需要花费很多精力去搜集项目信息,分析大量的项目报表,然后管理层和各与业负责人再对这些数据进行分析和整理,应该避免这些事情的发生,从而让管理者们聚焦真正的管理事务中去。
各部门输入的各类原始数据,由软件整理并分析成让接收者容易消化的、具有高水准的管理报表供其查阅。这些报表作为项目月报的组成部分是必不可少的。其将以实时的,可靠的,真实的数据出现在趋势图和矩阵图里,通过高亮问题数据和未完成目标对象来实现对信息的管理和控制。信息管理覆盖材料,文档,进度,产效,以及成本。这些结果将会实现更高效,更有先见之明的管理,从而以低投入低成本的工作换回显著降低项目风险的绩效。
###设计文档控制###
设计文档管理系统可以被集成到文件管理系统中去,让项目管理者控制文档的标识、产生或接收、审核、使用和完成,监控文档完成的进度。以项目全局范围内高度统一的文档命名规则为基础,实现文档的监控和大批量文档的产生。文档报表显示文档进度, 高亮显示实际不计划时间相背离的文档及其相关内容。适度的调整其文档计划是被容许的。
###供应商文档###
控制供应商文档是件让人头痛的事。一个项目需要精简文档需求的数量,同时又要满足材料设计,安装,以及操作时对数据的要求,还必须监控供应商文档的审核、发布、及其分发的过程。为了满足设计和施工进度的需要,应该确保供应商文档及时审核和交付。
###确认和申请材料###
基于对象化的来自P&ID的位号材料,在可控的发布下,最终形成设备和仪表清册,从而确保申请到正确的材料和数量,产生正确的采购。当设计变更发生后,高亮显示有变化的项,从而指导相关人员采取合适的行动,而无论它们是否已经在供应链里了。随着设计的深入, 初步材料表将会逐渐被最新的材料表所替代,同时具有高效的版本比较功能。保证从工艺P&ID设计,到三维布置图设计,再到材料需求中材料数量的高度一致性和完整性。
这里写图片描述
###采购###
1、全程监控从设计部门传递给采购部门的数据
2、全程监控询价的产生和标书的接收(当然也容许公司于以电子表格的形式提交标书)
3、评标管理
4、控制合同的产生
5、全程监控催交和检验
6、监控材料派遣和运输
这里写图片描述
###施工驱劢的材料管理###
为了满足现场施工对材料的要求,在采购阶段就要设置材料要求到达现场的时间。不断的跟踪满足施工需求的材料的各阶段时间,也就意味着现场施工计划人员可以很容易通过仓库,戒者通过预期交货时间来监控所需材料的可用性。如此清晰明了的计划和交付时间的监控,使得施工管理人员可以通过复查施工计划,提前知晓问题所在,从而对延误材料进行催交,或者根据需要修改施工计划和施工内容。通过使用这些工具,施工管理人员就能全局掌控他们的工作,从而通过他们的经验和与业技能,一天一天的逐渐优化施工进程。当是时,项目中的成本主体已经明确,无理的材料索要将得到制止,减少项目材料冗余,避免材料浪费。
这里写图片描述

###方便而快捷的数据输入输出功能###
方便而快捷的数据输入输出功能一直是其研发戓略里主要方针之一。丼例说明,数据既可以通过用户界面友好的界面录入,也可以通过Excel批量数据导入功能,大量快捷的生成数据。
EPC项目的分包商和他们的业主都希望他们的工程师将他们宝贵的时间和精力都投入到项目执行中去,而不是每天都要花费时间来做报表。同时,应该提供的灵活方便的报表定制功能充分满足用户实现满足自身要求格式的报表输出。
###为PDMS用户增值###
如果能与三维设计软件集成,将会产生更多的效益。例如PDMS与VPRM。为项目使用者准备好基础数据,以实现其快速实施。预设好的大量高质量参考数据(Reference Data)和参数设置,例如庞大的材料原件库和预制的供应商文档需求列表,等等。与三维工厂设计系统家族成员相互作用并整合集成,当然还可以与其它系统结合并形成接口数据。

PDMS是AVEVA旗下的三维工厂设计软件

如果VPRM和PDMS结合起来使用,将会产生特殊的效果。当实施PDMS和VPRM的整体解决方案时,VPRM将会使PDMS如虎添翼,显著增加PDMS的工作效率,与VPRM集成后的PDMS将会与VPRM保持高度的数据 一致性。
• PDMS管道等级的维护人工时将会省下来
• 在VPRM里生成管道等级不再需要资深材料工程师,人力成本将会得到显著降低
• 通过将PDMS管道轴测图统计的材料表传递到VPRM形成材料需求和采购合同,其集成系统整体解决方案的数据一致性将会到得到最大的保证

#总结#
对于任何一个项目而言,将正确的材料、以正确的数量、在正确的时间,运抵正确的地点,都是最基本的要求。材料管理软件应该在整个项目全生命周期过程中,对所有材料都进行严格的控制,其将贯穿从设计部门的材料确认开始、到采购、到最终安装,从而减少材料冗余和延期到货的风险。不同专业不同部门之间的数据要保证高度的一致性和权威性,是对其必不可少的要求之一。达到这个目标后,不仅可以减少人工时和工程师的工作量,还能减少错误的发生。但是为了一个高质量的项目,要达到这个目标,对项目数据集成整合的过程是一项复杂而耗时的工作。好比在上坡阶段可能我们需要花些力气,但是一旦到达山顶,后面的下坡路将会非常省力。

材料管理系统的建设是一项十分有意义的事业,对于一个项目而言假设材料费用是1个亿,每节约1%的材料,就会创造出1百万的利润,这就是向管理要效益的体现,而1%甚至0.5%的材料节省通过物料进细化管理并不是遥不可及的目标。一般而言项目材料费都高达数亿,这里面能挖掘的潜在价值是十分可观的。

材料管理软件是一个非常庞大的体系,从开发到最终应用成功,肯定是一个漫长的过程。我们已经在这条路上探索了很远很远,希望能出一个专辑系列,和大家一起分享我们的收获,砥砺奋进,不忘初心。

系列文章目录索引

工程物料管理信息化建设(二)——材料编码
http://blog.csdn.net/xiangcns/article/details/78290730

工程物料管理信息化建设(三)——再说材料编码
https://blog.csdn.net/xiangcns/article/details/78420097

工程物料管理信息化建设(四)——按管线发料
https://blog.csdn.net/xiangcns/article/details/87733838

工程物料管理信息化建设(九)——项目应用中暴露出的细节问题
http://blog.csdn.net/xiangcns/article/details/78108113

工程物料管理信息化建设(十)——整体规划和项目应用需求产生冲突
http://blog.csdn.net/xiangcns/article/details/78058453

微信扫一扫
关注我的公众号,与大家分享更多精彩内容
在这里插入图片描述

可对物料进行出入库登记、查询、统计等操作 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.Windows.Forms; namespace FORU_SMS_.BaseClass { public class DataClass { BaseClass.DataConn Dconn = new DataConn(); SqlDataAdapter Mysda; DataSet Myds; DataTable Mydt; SqlCommand SqlCom; //返回一个DataSet public DataSet GetDataSet(string sql, string dt) { Mysda = new SqlDataAdapter(sql, Dconn.OpenConn()); Myds = new DataSet(); Mysda.Fill(Myds, dt); return Myds; } //绑定ComboBox控件 public void BindComboBox(string sql, string dt, string Par_Name, ComboBox cbox) { Myds = GetDataSet(sql, dt); cbox.DataSource = Myds.Tables[dt]; cbox.DisplayMember = Par_Name; } //执行SQL语句,无返回值 public void ExecuteSql(string sql) { try { SqlCom = new SqlCommand(sql, Dconn.OpenConn()); SqlCom.ExecuteNonQuery(); } catch (Exception e) { throw new Exception(e.Message); } finally { Dconn.CloseConn(); } } //验证用户登陆 public bool ChkLogin(string txtUser, string txtPass) { bool strEnter = false; SqlCom = new SqlCommand("select count(*) from SMS_User where UserName=@txtUser AND Password=@txtPass", Dconn.OpenConn()); SqlParameter para = new SqlParameter("@txtUser",SqlDbType.VarChar,20); para.Value = txtUser; SqlCom.Parameters.Add(para); para = new SqlParameter("@txtPass", SqlDbType.VarChar, 20); para.Value = txtPass; SqlCom.Parameters.Add(para); int intCount = Convert.ToInt32(SqlCom.ExecuteScalar()); if (intCount > 0) { strEnter = true; } else { strEnter = false; } return strEnter; } public SqlDataReader GetRead(string sql) { SqlCom = new SqlCommand(sql, Dconn.OpenConn()); SqlDataReader sqlRead = SqlCom.ExecuteReader(CommandBehavior.CloseConnection); return sqlRead; } public DataTable GetDataTable(string sql) { SqlCom = new SqlCommand(sql, Dconn.OpenConn()); Mydt = new DataTable(); Mysda = new SqlDataAdapter(); try { Mysda.SelectCommand = SqlCom; Mysda.Fill(Mydt); } catch (Exception) { } finally { Dconn.CloseConn(); } return Mydt; } private bool isNumber(string s) { int Flag = 0; char[] str = s.ToCharArray(); for (int i = 0; i 0) { return true; } else { return false; } } public void saveGoods(AddGoods _Add) { string sql = ""; sql = sql "insert into SMS_Goods(GoodsID,GoodsName,StoreName,SupName,SpecName,UnitName,GoodsNum,GoodsPrice,GoodsAPrice,GoodsPeople,GoodsRemarks) values (@GoodsID,@GoodsName,@StoreName,@SupName,@SpecName,@UnitName,@GoodsNum,@GoodsPrice,@GoodsAPrice,@GoodsPeople,@GoodsRemarks)"; SqlCom = new SqlCommand(sql,Dconn.OpenConn()); Mysda = new SqlDataAdapter(); Mysda.SelectCommand = SqlCom; SqlCom.Parameters.Add("@GoodsID", SqlDbType.VarChar, 20, "GoodsID").Value = _Add.GoodsID; SqlCom.Parameters.Add("@GoodsName", SqlDbType.VarChar, 50, "GoodsName").Value = _Add.GoodsName; SqlCom.Parameters.Add("@StoreName", SqlDbType.VarChar, 50, "StoreName").Value = _Add.StoreName; SqlCom.Parameters.Add("@SupName", SqlDbType.VarChar, 50, "SupName").Value = _Add.SupName; SqlCom.Parameters.Add("@UnitName", SqlDbType.VarChar, 10, "UnitName").Value = _Add.UnitName; SqlCom.Parameters.Add("@GoodsNum", SqlDbType.Int, 4, "GoodsNum").Value = _Add.GoodsNum; SqlCom.Parameters.Add("@SpecName", SqlDbType.VarChar, 50, "SpecName").Value = _Add.SpecName; SqlCom.Parameters.Add("@GoodsPrice", SqlDbType.Float, 10, "GoodsPrice").Value = _Add.GoodsPrice; SqlCom.Parameters.Add("@GoodsAPrice", SqlDbType.Float, 10, "GoodsAPrice").Value = _Add.GoodsAPrice; SqlCom.Parameters.Add("@GoodsPeople", SqlDbType.VarChar, 20, "GoodsPeople").Value = _Add.GoodsPeople; SqlCom.Parameters.Add("@GoodsRemarks", SqlDbType.VarChar, 50, "GoodsRemarks").Value = _Add.GoodsRemarks; try { SqlCom.ExecuteNonQuery(); } catch (Exception) { } finally { Dconn.CloseConn(); } } } }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiangcns

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值