zoukankan      html  css  js  c++  java
  • 实时进销存

    实时进销存

    如何统计出任意时刻的期初,期间,期末的进销存?

    因为库存每天,每时每刻都在变化,而许多医院的药品都需要统计任意两个时点之间的进销存情况,例如2015-05-05 10:03:20至2015-09-05 10:03:20的期初、期间增加 、期间减少、期末的库存,该如何统计呢?

    因为库存实时的都在变化,每天都在出库,入库,就连2015-05-05 10:03:20和2015-09-05 10:03:20两个时刻的库存数都测不准,更不要谈期间数据了,当然可以用最笨的办法,从最初的库存开始,一直推算到这两个时刻,但是如果软件开始使用的时间离2015年5月很远,例如2010年,五年的数据,一个个从2010年加减到2015年,将会耗费很长时间计算,甚至死机,这当然是不可行的。

    目前我看到的可行的方法是,定义一个计划任务,每天将库存存放到一个表中,可以称为库存快照表,有了这个表再来计算期初和期末和期间数据就简单得多了。

    一、       期初或期末数的计算

     以上面为例,假设每天晚上23:00:00存放库存快照,存入yp_plan,那么如何计算药品A在2015-05-05 10:03:20和2015-09-05 10:03:20两个时刻的库存数,下面我给出具体步骤:

    1. 首先取出2015-05-04 23:00:00计划任务执行的库存信息表中A的

    库存数,记为S_A

    1. 然后将2015-05-04 23:00:00至2015-05-05 10:03:20之间所有的出

    库、入库的库存数S_ADD,S_REDUCE

    1. 最后得出2015-05-05 10:03:20的期末数S_B=S_A+S_ADD-S_REDUCE,

    记2015-05-05 10:03:20时刻库存为S_START,同样可以求得2015-09-05 10:03:20的库存数,记2015-09-05 10:03:20时刻库存为S_END

    这样就只需要计算几个小时的出入库数据就能算得各时刻的库存数。

    二、       期间(期间增加和期间减少)数的计算

    1. 以上面为例,将2015-05-05 10:03:20年到2015-05-05 10:03:20的增加数算出,包括入库,退库,转入,盘盈等,只要是库存增加都可以计算在内,算得期间增加S_ADD_TOTAL
    2. 将2015-05-05 10:03:20年到2015-05-05 10:03:20的减少数算出,包括出库,调拨,转出,盘亏等,只要是库存减少都可以计算在内,算得期间减少S_REDUCE_TOTAL

    三、       检查数据的正确性

    可以用S_END=S_START+S_ADD_TOTAL-S_REDUCE_TOTAL来查看进销存的准确性,如果不准确说明系统有漏洞或者有出入库没有记账等问题。

                                                                 董继超

                                                            2016年3月11日

  • 相关阅读:
    人机博弈,吃子棋游戏(一)基本介绍
    cesm下载备注
    mysql数据库批量高速插入
    持续学习
    顺序表的功能实现
    Broccoli & Babel使用演示样例
    rk3188调试记录
    Operation not allowed on a unidirectional dataset错误?
    dbExpress操作中用TDBGrid显示数据
    dbexpress连接mysql提示Operation not allowed on a unidirectional dataset
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/5264710.html
Copyright © 2011-2022 走看看