介绍一个医疗物质数目清点系统的实现过程
<p>本篇随笔分析一个实际的用于科室的物质清点系统的实现过程,针对各个模块的进行详细的业务分析和基于我们自己的WInform开发框架进行快速实现的整个过程,引入库房、物资(产品)、库存、入库、出库等主要的业务对象,并根据实际需要对相关的业务界面进行设计开发。</p><h3>1、系统业务需求</h3>
<p>业务需求主要的目的是跟踪记录科室物资的入库和使用情况,并能够根据实际的 流水数据进行一定的分析统计。</p>
<p>按照一般的进销存的管理方式,那么就需要引入库房、物资(产品)、库存、入库、出库等主要的业务对象,并根据实际需要增加一些辅助业务表即可。但是需要针对实际的使用习惯和需求进行一定的优化和扩展,使之能够提高使用效率,并符合实际的需求。</p>
<p data-start="0" data-end="111">在进销存(<strong data-start="5" data-end="17">采购、销售、库存</strong>)系统中,关于<strong data-start="24" data-end="46">库房、物资(产品)、库存、入库、出库</strong>等核心业务对象,是系统中最基础的实体,构成了物料流转的主线。下面我将从<strong data-start="81" data-end="91">业务逻辑层面</strong>详细介绍它们的含义、关系和常见字段。</p>
<p data-start="0" data-end="111"><strong>1)库房</strong></p>
<p data-start="0" data-end="111">库房是物资的存放地点,是库存管理的基本单位。</p>
<p data-start="171" data-end="182"><strong>业务意义</strong></p>
<ul data-start="183" data-end="255">
<li data-start="183" data-end="202">
<p data-start="185" data-end="202">表示物资实际存放的地点或区域。</p>
</li>
<li data-start="203" data-end="232">
<p data-start="205" data-end="232">支撑多库管理(例如:总库、分库、虚拟库、代管库)。</p>
</li>
<li data-start="233" data-end="255">
<p data-start="235" data-end="255">与组织结构、采购、销售、调拨等环节关联。</p>
</li>
</ul>
<p><strong> 2)物资 / 产品</strong></p>
<p>物资是库存管理的核心对象,代表可以入库、出库、销售或采购的单位物料。</p>
<p data-start="649" data-end="660"><strong>业务意义</strong></p>
<ul data-start="661" data-end="716">
<li data-start="661" data-end="694">
<p data-start="663" data-end="694">物资是系统中最基础的数据对象,用于识别和分类所有库存项目。</p>
</li>
<li data-start="695" data-end="716">
<p data-start="697" data-end="716">可以包括原材料、半成品、成品、耗材等。</p>
</li>
</ul>
<p><strong>3)库存</strong></p>
<p>库存是库房与物资的数量状态表,记录某个物资在某个库房中的当前数量和状态。</p>
<p data-start="1169" data-end="1180"><strong>业务意义</strong></p>
<ul data-start="1181" data-end="1223">
<li data-start="1181" data-end="1199">
<p data-start="1183" data-end="1199">实时反映各库房中物料的数量。</p>
</li>
<li data-start="1200" data-end="1223">
<p data-start="1202" data-end="1223">为库存预警、成本计算、出入库校验提供依据。</p>
</li>
</ul>
<p><strong>4)入库</strong></p>
<p>入库是库存增加的业务操作,来源可能是采购、生产、退货、调拨等。</p>
<p data-start="1701" data-end="1712"><strong>业务意义</strong></p>
<ul data-start="1713" data-end="1753">
<li data-start="1713" data-end="1729">
<p data-start="1715" data-end="1729">表示物资进入库房的过程。</p>
</li>
<li data-start="1730" data-end="1753">
<p data-start="1732" data-end="1753">入库单通常是会计成本和库存数量的来源凭证。</p>
</li>
</ul>
<p><strong>5)出库</strong></p>
<p>出库是库存减少的业务操作,来源可能是销售、生产领料、调拨、报废等。</p>
<p data-start="2321" data-end="2332"><strong>业务意义</strong></p>
<ul data-start="2333" data-end="2374">
<li data-start="2333" data-end="2350">
<p data-start="2335" data-end="2350">表示物资从库房流出的过程。</p>
</li>
<li data-start="2351" data-end="2374">
<p data-start="2353" data-end="2374">是销售、领料、转库、退货等操作的实际执行。</p>
</li>
</ul>
<p> </p>
<h3>2、业务界面展示分析</h3>
<p><strong>1)库房定义</strong></p>
<p>库房是所有业务表的基础,因此我们先设计一个库房的管理界面,录入基础数据前也先准备好库房的信息,我们通过库房的名称进行关联即可。</p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251111162206180-1344660078.png" alt="image" width="905" height="571" loading="lazy"></p>
<p> </p>
<p><strong>2)物资管理</strong></p>
<p>物资也是一些业务开展的基础信息表,需要再开始的时候录入一些基础物资数据。</p>
<p>在物资列表显示中,我们也需要根据不同物资,汇总他们所有库存的数量,方便总体了解,后面介绍这个地方的逻辑。</p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251111162335562-850114605.png" alt="image" width="1111" height="701" loading="lazy"></p>
<p><br>物资入口也是我们统一管理查看和管理各个库房库存入库的入口,因此在前期数据准备后,也可以针对物资提供</p>
<ul>
<li>物资导入、导出操作</li>
<li>较正各科库房的库存量</li>
<li>查看该物资的出入库记录</li>
<li>批量设置备注信息</li>
</ul>
<p>等相关联的操作,如下界面的右键菜单所示。</p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251111162443597-162631525.png" alt="image" width="1080" height="681" loading="lazy"></p>
<p>物质信息,除了方便进行条件查询外,我们实际往往需要实现业务数据的导入导出操作,这样可以再初始化物资信息的时候更加方便,因此我们所有业务基础表数据,我们都提供标准化的导入、导出操作。</p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251112110805852-1161273006.png" alt="image" width="1073" height="882" loading="lazy"></p>
<p> 较正库房库存,用于盘点实际库存量和系统库存量存在差异的时候,进行的库存统一修正操作。</p>
<p>这里统计的是所有库房库存量,如果库房的库存记录没有存在,那么这里也需要出现为0。</p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251111162526328-1176682575.png" alt="image" width="768" height="406" loading="lazy"></p>
<p>而物资信息,我们有时候需要进行一定的修改,因此在编辑界面中也展示一下对应库存的信息,供参考了解。</p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251112105203534-1685362848.png" alt="image" width="770" height="396" loading="lazy"></p>
<p> </p>
<p><strong> 3)物资库存管理</strong></p>
<p>物质的库存管理,主要就是根据库存分组列出各个产品的信息和对应库房的库存,而为了方便,我们可以切换是否<strong>显示库存大于0的物资</strong>,以及提供一些方便的物资信息同步操作。</p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251112105741036-754681366.png" alt="image" width="1172" height="918" loading="lazy"></p>
<p> 物资库存的列表提供了一些常见的右键菜单操作,如下界面所示。</p>
<ul>
<li>设置物资库存</li>
<li>批量设置库存</li>
<li>批量设置备注信息</li>
</ul>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251112111025695-506278393.png" alt="image" width="1174" height="919" loading="lazy"></p>
<p> 如库存设置,可以对该库房的物资库存的数量进行修改处理。</p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251112115141070-305586955.png" alt="image" width="567" height="221" loading="lazy"></p>
<p> </p>
<p> </p>
<p><strong> 4)物资入库登记</strong></p>
<p>物资入库、出库登记,是我们管理日常物资流水记录的操作,同时也是为后面的数据统计分析提供数据基础。</p>
<p>入库记录的显示,我们处理提供一些基础的查询操作外,并可以对记录批量进行一些标记处理,如</p>
<ul>
<li>设置消码出库</li>
<li>撤销消码出库</li>
<li>批量设置备注信息</li>
</ul>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251112112646030-881160593.png" alt="image" width="1114" height="830" loading="lazy"></p>
<p> </p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251112111856915-1552550983.png" alt="image" width="1206" height="944" loading="lazy"></p>
<p>为了方便,我们提供了在单元格中快速查询和选择物资的处理,并在物资信息后面,列出各个库房当前的库存数量,供参考。</p>
<p>在入库操作保存的时候,我们会提供一个确认明细的操作,方便核对下具体的数量是否正确,确认无误后再保存入库记录信息。</p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251112112427186-374658333.png" alt="image" width="789" height="387" loading="lazy"></p>
<p> </p>
<p><strong>5)物资使用/出库登记</strong></p>
<p>物资的出库/使用记录,是我们跟踪物质使用情况的重要依据,也是后续统计的数据基础,因此我们需要根据实际信息进行录入处理,并能进行快速的查询。</p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251112113340633-2078831856.png" alt="image" width="1055" height="721" loading="lazy"></p>
<p>对于录入物资出库使用的处理,和入库差不多,不过增加不同的一些所需业务数据记录而已。</p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251112113455899-169561369.png" alt="image" width="1053" height="549" loading="lazy"></p>
<p> </p>
<p><strong> 6)物资调拨</strong></p>
<p>物资库存调拨,也是进销存常见的一种业务处理,是指把某个库房的物资,调拨到另外一个库房,并对不同库房库存进行增减的业务处理。</p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251112113853476-1866157736.png" alt="image" width="1070" height="731" loading="lazy"></p>
<p> </p>
<p><strong> 7) 统计报表</strong></p>
<p>有了基础数据的支撑,我们就可以对数据进行统计分析,使得我们可以对不同科室的入库数量、出库数量等进行一些统计分析处理了。</p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251112114039845-416947451.png" alt="image" width="1084" height="670" loading="lazy"></p>
<p>这样就可以统计各个月份科室的物资使用情况了。</p>
<p> <img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251112114241362-1557145914.png" alt="image" width="1082" height="717" loading="lazy"></p>
<p> </p>
<h3>3、数据库设计</h3>
<p>上面介绍了实际的业务信息和界面展示,对于上面的业务对象和界面操作,我们提供一些基础的数据库的相关表信息,主要的数据表如下所示。</p>
<p>包括仓库-Warehouse、物资-Product,物资库存-ProductStock,入库ProductReceipt、出库-ProductTakeOut几个业务表。</p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251111161817336-1896700558.png" alt="image" width="884" height="632" loading="lazy"></p>
<p>一般业务的设计,入库和出库设计为主从表的方式,主表记录一些公共的基础信息和汇总信息。</p>
<p>不过,由于我们业务主表的信息不多,而主要针对明细表进行统计和分析,因此我把它们设计为单一表的方式,通过汇总入库/出库编码模式进行展示即可,也更加简单化一些。</p>
<p>由于我们有时候需要对出库的明细记录进行一定的快速录入的需求,如对于某些医疗小组的物资需求是差不多的,因此可以增加一个所需物资记录的标签分组来辅助快速选择。</p>
<p>因此设计了出库明细分组的辅助表-ProductTakeOutTag。</p>
<p><img src="https://img2024.cnblogs.com/blog/8867/202511/8867-20251111162000375-54043480.png" alt="image" width="428" height="379" loading="lazy"></p>
<p>另外,对于出库使用和入库的数量变化,我们需要增加一个库存变化的日志来进行核对和查看处理,因此设计了辅助表ProductStockLog表。</p>
<p> </p>
</div>
<div id="MySignature" role="contentinfo">
<div style="border-right-color: #cccccc; border-right-width: 1px; border-right-style: solid; padding-right: 5px; border-top-color: #cccccc; border-top-width: 1px; border-top-style: solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left-color: #cccccc; border-left-width: 1px; border-left-style: solid; width: 98%; padding-top: 4px; border-bottom-color: #cccccc; border-bottom-width: 1px; border-bottom-style: solid; background-color: #eeeeee;">
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" alt>
<span style="color: #000000"><span class="Apple-tab-span" style="white-space: pre"></span>
专注于代码生成工具、.Net/Python 框架架构及软件开发,以及各种Vue.js的前端技术应用。著有Winform开发框架/混合式开发框架、微信开发框架、Bootstrap开发框架、ABP开发框架、SqlSugar开发框架、Python开发框架等框架产品。
<br> 转载请注明出处:撰写人:伍华聪 http://www.iqidi.com <br> </span></div><br><br>
来源:https://www.cnblogs.com/wuhuacong/p/19210825
頁:
[1]