工厂工序日报软件开发的总结与心得

工序日报统计软件开发的总结与心得

一、业务流程:

工时统计是车间重要的一环,是每月据此形成工厂薪资及后续各类分析的信息来源,原来是由财务统计在线下完成,主要业务流程包括:

从数据录入,到按工序来分项统计----到按成品价格汇总------再按产品,分别得到出成率统计,与出成率统计汇总,中间还有从EAS引出的包材部分,形成包材的奖励明细与汇总----在此基础上,再结合非生产工时、班组长的津贴,及三项考核------得到最终的班组薪资。

另外,根据业务需要,结合上述,得到产品的出成率与包材环比分析,及万盒工时统计等各类分析,为工厂及相关领导层决策参考用;

二、实现过程

  1. 业务部分:

1、工时录入部分;包括各产品与工序的总工时、台时,与工人的明细工时统计,这三个部分;

其中工时部分,主要用于统计各类产品的工时,包括各产品、工序、批号、包装单位等,这些信息要实现关联;台时部分,是统计相关机器设备的耗时;工人信息明细,主要是当天工人详细工时信息,包括名字、日期及每人的工时等信息;

以上,还要求实现“产品、工序、单位”等关键信息,这些信息还要实现关联,并在工时等三个部分间,实现这些信息的传递;

根据产品,自动对应机器设备,并带上对应的台时,及根据工序,对应相关的操作人员;

细节应用中,还有相同产品,在同批号,不同日期间,要实现累积产量的叠加;

2、分项统计;是根据各产品的工序,进行工时的汇总,并结合工序单价模板,得到当月各产品的产量薪资;

其中一部分子工序的工时,在统计时需要按总工序进行合并, 为此我们在后台模板内(w_productpriceUP),建立了母、子工序的对应,及单价;各个产品的入库和取样数量,是从金蝶K3,通过后台模板的产品的批号对应,来获得的;此外还有一类辅料,包衣粉,是独立于各产品的,其中的产量会均给各个产品用,因此从金蝶K3里面独立获得的;

通过此,我们得到以工序维度来看的,产量薪资;

这部分有些特殊情况,如产品A,及产品B,需要进行折算,其中产品A,3支装与10支装,在某部分工序,在“配液-灌装”与“配初乳等”部分,是合并处理的,可以说是一并投料,录入的各工时也是合并后的;

产品B的24粒与72粒装的,在填充、整粒部分,也是合并投料的,72粒需要完成接下来的流水线、手包和喷扫工序,而24粒则从填写和整粒后,直接就到成品;因此需要进行入库与取样数量,在这两个工序处进行折算

后续不体现的产品数量,折算为最后产出的,此部分再确认一下;

因此在上述折算过程中,被折算产品的数量,是不能体现的,而是要包含在折算的主产品中,如产品B的72粒中,将行做一下删除操作(row.delete)

另外,针对个别产品与工序,如产品C,部分工序薪资是按单价*工时来统计,另部分工序,是按数量*单价来统计;而颗粒剂的烘琥珀粉工序,则是按单价*64.2来计算,其他就是按“数量*单价”来统计;

3、产量薪资部分;我们采用产品价格表,与分项统计相结合,得到从产品维度来看的产量薪资;在此,工序与产品来两个维度的产量薪资,必须保持一致方可;

4、出成率部分;

主要包括:出成率统计,与出成率汇总;出成率统计,是通过分项,如入库、取样数量、标准出成率与数量等,与产品出成模板相结合,得到各个产品的基本信息----再通过各个产品配方的数量,通过计算,得到实际出成率和数量-----再与标准对比,得到出成率,进而保存各个产品出成表中;

而出成率汇总,则是通过各个产品出成表,结合出成率模板的成品单元部分,与单价,将产品按名称汇总后,得到出成奖励金额;

此部分,有些特殊产品,比如产品A与产品D的出成率,有个出成范围,在93.5--95.5的范围之间,大于上限,就按95.5的标准考核,若小于下限,则按93.5的标准来考核,这部分都要考虑在内;

5、包材奖励部分;

此部分需要从EAS里面获取,因此暂时先略过,重要时针对环比分析,如何导入时,可能自动对应模板内的,去年的相同名称物料的数量;

6、班组长津贴、三项考核统计表;三项考核统计表,本次采用了EPPLUS来进行导入导出,效果更好,但目前MES框架不兼容,另外,统计PC对于各个导入、导出,均无法正常使用,还是NET framework4.7.2的版本问题,而MES的版本是4.5,因此需要升级MES方可正常应用;

三项考核统计表中,采用了在查询时,先按产品分类,后又追加查询条件的方式;在查询时可简单计算,涉及出勤天数等复杂计算,需要在计算逻辑统一计算;此处过于追求自动化,导致计算复杂,后思路清楚后,逐步整理明确;

另外,区分班组后,计算逻辑有些不清,因为查询表是采用复制到新表的方式,此处还需要认真探讨。及针对DGV所查询出的不涉及行的隐藏,此处不同于前面的row.delete,只是单纯的visible为false,优点是不影响相关逻辑计算,缺点是导出时,会带这些隐藏行,给业务人员所见非所得的感觉;

7、班组薪资

通过与分项里面的班组名称、日期,产品名称等关键内容的匹配,形成班组薪资六项中的五项的对应,得到最终的报表;

8、非生产工时

主要用于机器设备的维修,产品返工复修等操作,所耗用的工时;

  1. 技术方面

1、针对录入部分,同批号的产品,在不同日期完成后,需要在最后的日期里,得到这段时间的累积量,可采用倒序查询for(i = dt.row.count-1, i>=0, i--);正常情况下,通常是正序查询,而三项考核统计,也是按倒序进行的,如此for (i<dt.row.count-1,i>=0,i--),通过此将提取车间的信息过滤掉;

2、针对分项中字典的应用,以实现相同产品,如产品A和产品B,在不同规格折算数量的累加;

3、录入部分,采用机器与台时关系对应,及人员与工序关联表的对应,实现在工时保存时,同时将台时及人员明细,一并保存到对应的台时和人员明细数据表内(MAP);并将其由单条的修改,改为批量的修改与保存,此部分,对于统计的工作效率来讲非常重要;

4、明细与汇总,如出成、包材奖励等明细表的数量汇总、计算后,在汇总表的体现,及各个业务表的薪资,在班组薪资表的体现等;

5、针对特殊情况的计算,在针对数据表dt内在foreach循环内,如除数分母不能为零的情况(为此,即设置其整体运算为零);在修改时,手动一点点的清理数值时,当为空时即时点的报错(增加了容错措施);还有MATH.ROUND函数在四舍五入时,差一分钱的情况(可采用放长小数点的位数);及在DGV的CellEndEdit事件内,针对dgv和DT的数据保存在临时变量,再与dgv所录入的数值,结合使用,如三项考核表的特殊情况;

6、另外,针对删除、修改图片,在实际删除与修改操作中的结合使用等等,针对DT和DGV,在循环时各项的求和,按工序或班组分组,及颜色的标注等;

7、还有,在MES框架内如何设置菜单,及报错后,查看相关信息及时上传所需要文件;

导入、导出EXCEL功能,采用新组件EPPLUS,及MicroSoft.Inter.office.excel的应用;

8、保存时只提醒一次,或不提醒,采用了continue关键字,来将同一数据表的新数据,补充保存到数据表的方法,也较为重要;另外,还有,采用参数化的方式来传递相关条件,使整个系统更加安全;

9、相较传统的打开连接,try catch 及关闭连接的方式;采用using来自动关闭与释放资源的方式,在运行效率与代码简洁度上,有所提高;另外,会对修改的内容,采用SQLCommandBuilder(SDA),及sda.update的方式,效率较update语句更高,可能是针对性不如SQL语句那么强;

三、心得总结;

总体而言,本次开发的不足之处,需要改进的方面有,对后续量大的工作,像源头的录入,及过程中的批量处理的信息,及校验与关联性不强的内容,可以直接在表格内实现修改与保存,及批量删除(关键信息,可实现部分列不可修改),反之,则要采用单独的修改表单,予以整理;另外,将导入与保存的按钮合并,尽量使表单简洁,大致如此:“导入、查询、修改、删除”;另外,查询内容,若是关键信息,则还是要单条修改与删除的。

最后,与业务部门的沟通,能够达到一个令双方满意的平衡点,是最重要,也是最核心的,更是最考验人的,这也是该项工作,最大的难点与关键点。

  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值