找回密码
 立即注册
开始学习

《库存管理系统-盘点模块》

课程总量:共3章节7课时
课程简介:企业级真实项目精简版本,难度高,适合寻找开发岗位的毕业生
课程价格: 免费     报名人数:已有 8 人在学
开始学习 收藏

课程概述

          为了检验学习的效果,我们基于简化的“库存盘点”需求设计了课后作业,覆盖了数据库设计、数据建模、服务端命令开发、前后端分离式移动端页面开发、单体(数据绑定)式PC页面开发等项目实战中常用的技术场景。

根据既往经验,您需要花费大约三天完成该项目实践

一、项目设计

        提示:请严格按照项目设计完成开发。

1.1 数据库设计

数据库的设计请参照下方ER图。

您需要在活字格的内置库(不建议在生产用系统中使用内置库,学习阶段可做例外)中构建表、字段、表关联、自动编号、公式字段和统计字段。

ER图



1.2 后端WebAPI(服务端命令)设计

综合考虑开发效率与可维护性要求,作业项目中部分操作需采用“前后端分离”模式开发。

您需要在活字格中创建如下服务端命令,所有服务端命令均需要做异常处理,捕获异常后,将返回码设置为ExceptionCode,返回信息设置为ExceptionMessage。

名称

目的

参数

输出值

示例

create

创建盘点单

Memo:基础类型,盘点说明

Locations:数组类型,盘点单需要覆盖的库位


返回信息:1

getCheckPlanData

获取盘点单的主表信息

ID:基础类型,盘点单ID

data:盘点单的主表数据和所涉及的库位列表(locations属性)

{ "data": { "ID": 9, "StatusID": 1, "CheckedByID": null, "CheckedBy": null, "CheckedAt": null, "Memo": "课程演示用", "Status": "未执行", "Comments": null, "locations": [ { "value": 1, "label": "A-1" }, { "value": 2, "label": "A-2" }, { "value": 5, "label": "C" } ] } }

getCheckPlanInventoryData

获取盘点单中某个库位下的库存信息,支持分页加载

  • ID:基础类型,盘点单ID

  • Location:基础类型,库位ID

  • offset:基础类型,跳过行数(分页用)

  • limit:基础类型,返回行数(分页用)

  • data:当前分页的库存列表

  • total:库存列表的总行数(分页用)

{ "data": [ { "Inventory": "移动硬盘 512GB", "Current": 10.0, "Check": null, "InventoryID": 6 }, { "Inventory": "C1", "Current": 0.0, "Check": null, "InventoryID": 5 }, { "Inventory": "GcExcel", "Current": 20.0, "Check": null, "InventoryID": 4 }, { "Inventory": "SpreadJS", "Current": 30.0, "Check": null, "InventoryID": 3 }, { "Inventory": "Wyn", "Current": 42.0, "Check": null, "InventoryID": 2 } ], "total": 6 }

check

执行盘点

  • Plan:基础类型,盘点单ID

  • Results:数组类型,盘点结果,数组项的属性为Inventory(存货ID)和Volumn(实盘库存)

  • Operator:基础类型,执行人的员工档案ID

  • Comments:基础类型,用户输入的其他注意事项



流程图如下所示:

create

getCheckPlanData

getCheckPlanInventoryData

check

1.3 前端页面设计

作业项目由如下页面构成:

  1.3.1 库存盘点列表页面(PC页面)

功能描述:

1、用于展示盘点单,并可以根据盘点年度、盘点状态进行数据过滤

2、点击创建按钮,弹出“创建盘点单页面”,具体内容见以下第2点

3、点击查看按钮,弹出“盘点单详情页面”,具体内容见以下第3点

  1.3.2 创建盘点单页面(PC页面)


功能描述:

1、盘点是分仓库执行的,在创建盘点单时,需要指定当前这张盘点单需要覆盖哪些仓库,必要时填写盘点说明

2、点击【创建盘点单】时执行create的服务端命令,创建失败时提示错误信息,成功的话关闭创建页面


  1.3.3 盘点单详情页面(PC页面)


功能描述:

1、展示当前盘点单详情

2、可以将“在库情况”表格导出到Excel

3、可以与页面类似的PDF


Excel的效果



PDF打印的效果

  1.3.4 盘点页面(移动端)

初始状态

输入单号后的状态

选择库位后的状态(顶部):

选择库位后的状态(底部):

功能描述:

1、初始状态:页面初始时只展示盘点单号的输入图框,输入或扫描盘点号(数字或格式化为9位数字的盘点单ID,如000000011)后点击右侧图表,调用“getCheckPlanData”接口,如果盘点单存在且不时盘点完成状态,则进入“输入单号后状态”;不存在的话,提示错误信息“没有找到该ID的盘点单”;存在但状态为盘点完成时也需要也需要提示信息“盘点单已经盘点完成,请使用PC版查看详情”。

2、输入单号后状态:点击选择库位,进入“选择库位后的状态”,并通过“getCheckPlanInventoryData”接口获取第一页(5行)商品库存数据(含商品、系统在库库存和实际在库库存,如果上述数据是第一次展示,则需要使用系统在库库存来填充默认的实际在库库存,两个库存数据不一致时,需要将该行数据设置为浅红色背景来做出提示),将其展示到页面上,同时使用该接口返回的总行数来初始化分页器;操作人的默认值,使用当前系统用户对应的员工;其他事项的默认值为空。

3、选择库位后的状态:点击上下翻页时,需调用“check”接口,提交当前展示页的库存数据,然后再调用“getCheckPlanInventoryData”接口获取上一页/下一页的数据并填充用到界面上;点击切换仓库时,需要先调用“check”保存当前展示页的库存数据,然后再执行上一步中的操作;点击提交按钮时,也需要调用“check”接口,提交当前展示页的库存数据的同时,还需要将操作人和其他事项的数据保存到盘点单中。


 1.4 示例与模板

      1、模板:模板(V10.0.2.0).fgcc

      2、示例:https://hac.app.hzgcloud.cn/course_dev_homework/

二、自评标准

       如果采用模式A,请根据实际情况自行判断作业完成情况;如果采用模式B,可根据本章节自行评分。本课程作业的满分为100分,80分及格,具体评分规则如下,粗体为重点关注项目

  1. 用户(仓库管理员)可以查看商品的当月在库库存,并对其进行调整 >> 模板内置,不计分

    1. 支持通过存货档案的名称做模糊查找

    2. 支持将在库库存导出为Excel表格

  2. 用户(系统管理员)可以管理员工档案,并将其与系统用户进行关联 >> 模板内置,不计分

    1. 支持通过员工姓名做模糊查找

    2. 支持类Excel的操作体验,完成创建、修改和删除操作

  3. 用户可以管理盘点单 >> 共35分

    1. 页面设计与示例相仿或更佳

    2. 支持通过盘点单的盘点时间/执行时间的年份进行过滤,候选项目为当前年度和之前的4个年度,默认为全部;支持通过盘点状态进行过滤,默认为全部

    3. 在查询结果中,如果盘点单已经完成盘点操作,需要将盈亏项目显示在列表中

    4. 支持创建盘点单。盘点单除了保存用户输入的盘点说明外,还需根据用户选择的库位,自动包含存货档案中没有被标记为删除的存货,及其当前时间节点下系统库存的数量以备查验

    5. 查看盘点单时,用户能看到盘点状态、盘点执行人、执行时间、盘点说明、其他事项等信息,还能查看存货的盘点情况(含存货名称、系统中的在库库存、实际盘点的库存、盘盈盘亏情况)

    6. 用户可以将盘点单中盘点结果数据导出为Excel文件,包含存货档案名称、系统库存、实际库存和盈亏情况

    7. 用户可以将盘点单导出为PDF文件,其中除了盘点单的内容外,还需要包含用于扫描的【盘点码】(将盘点单ID格式化为9位,前面补零,如123格式化为000000123)

  4. 用户可以在手机或PDA上执行盘点操作 >> 共60分

    1. 不允许使用数据绑定

    2. 页面设计与示例相仿或更佳

    3. 出于性能考虑,不能在页面可见区域内使用表格,图文列表需要支持分页,每页不超过5条

    4. 支持通过手工输入盘点单ID或扫描盘点码(扫描出的文字格式参考3.7),打开需要操作的盘点单,不能对已经完成盘点的单据再次进行盘点操作

    5. 支持通过选择当前盘点单中涉及到的库位,过滤出对应的商品列表和创建盘点单时的系统在库库存(系统在库库存来自3.4)

    6. 仅当实盘的库存和系统在库库存不一致时,才需要手工修改实盘库存,切换库位或数据分页时,自动将当前修改或确认的实际库存保存到数据库

    7. 如果当前登录的系统用户已关联到员工档案,需要将操作人的默认值设置为该员工

  5. 提交盘点结果时,系统需在自动更新盘点单的状态、详情外,同步更新在库库存数据 >> 共5分

  6. 附加分 >> 共10分

    1. 创建盘点单时,辅助仓库管理员选择本月份尚未创建盘点计划的库位

    2. 执行盘点时,如果盘点单上的在库库存和当前时间点的在库库存不一致时,给执行者做出提示

    3. 库存管理员可参考库位中商品的摆放位置以及盘点动线(在重排库位前,位置和动线都不会有变化)为商品指定盘点顺序,盘点单上的商品顺序需要按照该顺序展示

    4. 执行盘点时,执行者可以通过点击提交按钮,随时暂存数据

    5. 执行盘点时,即便仓库内网络不稳定,执行者也可以在已经打开的页面上确认在库库存、调整实盘库存,当网络恢复时,再一并提交