惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
V
V2EX
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
小众软件
小众软件
Vercel News
Vercel News
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
J
Java Code Geeks
P
Proofpoint News Feed
MongoDB | Blog
MongoDB | Blog
B
Blog
美团技术团队
量子位

博客园 - 伍华聪

使用Winform+WebView2+HTML构建弹性化、样式自定义化的管理系统界面 Cursor 里开发一个“一个后端 + 多个前端”项目的时候,推荐的项目目录结构组织方式 使用Cursor实现管理系统的主界面布局的Vue3前端开发 使用Cursor实现管理系统登录界面的快速开发 多租户系统框架的界面分析设计 多租户系统框架的基础模块设计和分析设计 多租户下的系统业务开发过程探讨 多租户下的ERP系统的仓储管理模块分析设计 多租户下的系统基础表设计 基于SqlSugar开发框架的基础上快速开发H5端的移动应用 在Python+FastAPI项目中使用SqlAlchemy操作数据的几种常见方式 在PySide6/PyQt6的项目中封装一些基础类库,包括文件对话框、字体对话框、颜色对话框、消息对话框等内容 在PySide6/PyQt6的项目中实现样式切换处理 如何在Python开发中实现无代码、纯配置的业务界面展示和常规数据操作的处理分析过程 在Winform开发中,动态增加标签分组,实现数据记录的快速录入 在基于FastAPI的Python开发框架后端,增加阿里云短信和邮件发送通知处理 在PySide6/PyQt6的开发框架中,增加对表格多种格式录入的处理,以及主从表的数据显示和保存操作。 使用PySide6/PyQt6实现自定义窗口布局,实现类似FluentWindow效果 WxPython跨平台开发框架之主从表展示和录入的界面处理--产品报价单和明细记录的处理 Vue3+ElementPlus的BS端主从表的快速开发 基于Python的FastAPI后端开发框架如何使用PyInstaller 进行打包与部署 使用PySide6/PyQt6实现全国省市区的级联选择组件 基于 SocketIO 消息协议设计报文规范,构建FastAPI上的SocketIO 应用 使用PySide6/PyQt6实现系统图标的展示和选择处理
介绍一个医疗物质数目清点系统的实现过程
伍华聪 · 2025-11-12 · via 博客园 - 伍华聪

本篇随笔分析一个实际的用于科室的物质清点系统的实现过程,针对各个模块的进行详细的业务分析和基于我们自己的WInform开发框架进行快速实现的整个过程,引入库房、物资(产品)、库存、入库、出库等主要的业务对象,并根据实际需要对相关的业务界面进行设计开发。

1、系统业务需求

业务需求主要的目的是跟踪记录科室物资的入库和使用情况,并能够根据实际的 流水数据进行一定的分析统计。

按照一般的进销存的管理方式,那么就需要引入库房、物资(产品)、库存、入库、出库等主要的业务对象,并根据实际需要增加一些辅助业务表即可。但是需要针对实际的使用习惯和需求进行一定的优化和扩展,使之能够提高使用效率,并符合实际的需求。

在进销存(采购、销售、库存)系统中,关于库房、物资(产品)、库存、入库、出库等核心业务对象,是系统中最基础的实体,构成了物料流转的主线。下面我将从业务逻辑层面详细介绍它们的含义、关系和常见字段。

1)库房

库房是物资的存放地点,是库存管理的基本单位。

业务意义

  • 表示物资实际存放的地点或区域。

  • 支撑多库管理(例如:总库、分库、虚拟库、代管库)。

  • 与组织结构、采购、销售、调拨等环节关联。

 2)物资 / 产品

物资是库存管理的核心对象,代表可以入库、出库、销售或采购的单位物料。

业务意义

  • 物资是系统中最基础的数据对象,用于识别和分类所有库存项目。

  • 可以包括原材料、半成品、成品、耗材等。

3)库存

库存是库房与物资的数量状态表,记录某个物资在某个库房中的当前数量和状态。

业务意义

  • 实时反映各库房中物料的数量。

  • 为库存预警、成本计算、出入库校验提供依据。

4)入库

入库是库存增加的业务操作,来源可能是采购、生产、退货、调拨等。

业务意义

  • 表示物资进入库房的过程。

  • 入库单通常是会计成本和库存数量的来源凭证。

5)出库

出库是库存减少的业务操作,来源可能是销售、生产领料、调拨、报废等。

业务意义

  • 表示物资从库房流出的过程。

  • 是销售、领料、转库、退货等操作的实际执行。

2、业务界面展示分析

1)库房定义

库房是所有业务表的基础,因此我们先设计一个库房的管理界面,录入基础数据前也先准备好库房的信息,我们通过库房的名称进行关联即可。

image

2)物资管理

物资也是一些业务开展的基础信息表,需要再开始的时候录入一些基础物资数据。

在物资列表显示中,我们也需要根据不同物资,汇总他们所有库存的数量,方便总体了解,后面介绍这个地方的逻辑。

image


物资入口也是我们统一管理查看和管理各个库房库存入库的入口,因此在前期数据准备后,也可以针对物资提供

  • 物资导入、导出操作
  • 较正各科库房的库存量
  • 查看该物资的出入库记录
  • 批量设置备注信息

等相关联的操作,如下界面的右键菜单所示。

image

物质信息,除了方便进行条件查询外,我们实际往往需要实现业务数据的导入导出操作,这样可以再初始化物资信息的时候更加方便,因此我们所有业务基础表数据,我们都提供标准化的导入、导出操作。

image

 较正库房库存,用于盘点实际库存量和系统库存量存在差异的时候,进行的库存统一修正操作。

这里统计的是所有库房库存量,如果库房的库存记录没有存在,那么这里也需要出现为0。

image

而物资信息,我们有时候需要进行一定的修改,因此在编辑界面中也展示一下对应库存的信息,供参考了解。

image

 3)物资库存管理

物质的库存管理,主要就是根据库存分组列出各个产品的信息和对应库房的库存,而为了方便,我们可以切换是否显示库存大于0的物资,以及提供一些方便的物资信息同步操作。

image

 物资库存的列表提供了一些常见的右键菜单操作,如下界面所示。

  • 设置物资库存
  • 批量设置库存
  • 批量设置备注信息

image

 如库存设置,可以对该库房的物资库存的数量进行修改处理。

image

 4)物资入库登记

物资入库、出库登记,是我们管理日常物资流水记录的操作,同时也是为后面的数据统计分析提供数据基础。

入库记录的显示,我们处理提供一些基础的查询操作外,并可以对记录批量进行一些标记处理,如

  • 设置消码出库
  • 撤销消码出库
  • 批量设置备注信息

image

image

为了方便,我们提供了在单元格中快速查询和选择物资的处理,并在物资信息后面,列出各个库房当前的库存数量,供参考。

在入库操作保存的时候,我们会提供一个确认明细的操作,方便核对下具体的数量是否正确,确认无误后再保存入库记录信息。

image

5)物资使用/出库登记

物资的出库/使用记录,是我们跟踪物质使用情况的重要依据,也是后续统计的数据基础,因此我们需要根据实际信息进行录入处理,并能进行快速的查询。

image

对于录入物资出库使用的处理,和入库差不多,不过增加不同的一些所需业务数据记录而已。

image

 6)物资调拨

物资库存调拨,也是进销存常见的一种业务处理,是指把某个库房的物资,调拨到另外一个库房,并对不同库房库存进行增减的业务处理。

image

 7) 统计报表

有了基础数据的支撑,我们就可以对数据进行统计分析,使得我们可以对不同科室的入库数量、出库数量等进行一些统计分析处理了。

image

这样就可以统计各个月份科室的物资使用情况了。

 image

3、数据库设计

上面介绍了实际的业务信息和界面展示,对于上面的业务对象和界面操作,我们提供一些基础的数据库的相关表信息,主要的数据表如下所示。

包括仓库-Warehouse、物资-Product,物资库存-ProductStock,入库ProductReceipt、出库-ProductTakeOut几个业务表。

image

一般业务的设计,入库和出库设计为主从表的方式,主表记录一些公共的基础信息和汇总信息。

不过,由于我们业务主表的信息不多,而主要针对明细表进行统计和分析,因此我把它们设计为单一表的方式,通过汇总入库/出库编码模式进行展示即可,也更加简单化一些。

由于我们有时候需要对出库的明细记录进行一定的快速录入的需求,如对于某些医疗小组的物资需求是差不多的,因此可以增加一个所需物资记录的标签分组来辅助快速选择。

因此设计了出库明细分组的辅助表-ProductTakeOutTag。

image

另外,对于出库使用和入库的数量变化,我们需要增加一个库存变化的日志来进行核对和查看处理,因此设计了辅助表ProductStockLog表。