找回密码
 立即注册
<返回

课程大作业 - 面向程序员的活字格入门课程

抱歉,登录后可以观看!

现在登录

1142 人在学

详情

章节

资料


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

根据既往经验,您需要花费大约8小时完成本作业。

需求概述

这是一个经简化的库存管理系统中的盘存模块,包含创建盘点单、执行盘点两个用户故事。

  • 管理盘点单

    • 仓库管理员在PC上创建当前财年月份的盘点单,因为仓库盘点是分库位执行的,在创建盘点单时,需要指定当前这张盘点单需要覆盖哪些库位,必要时填写盘点说明

    • 仓库管理员在PC上查看盘点单的盘点进度和盘点结果。其中盘点结果除了盘点状态、库位、盘点人、执行时间以及备注外,还需要包含创建盘点单时,所选库位上所有商品的系统在库库存、实盘库存和盘点盈亏(在库和实盘不符视为有盈亏)情况

    • 盘点开始前,仓库管理员在PC上可以打印包含有盘点单条码(9位的数字)的纸质单据,方便给盘点人员使用

    • 盘点完成后,仓库管理员在PC上将盘点单中的在库库存、实盘库存和盈亏状况等数据导出为Excel文件,提交给财务部门。需要特别注意的是,盘点单创建后,单据上的在库库存数据不能被修改;盘点完成后,实盘数据也不能修改

    • 仓库管理员也可以在PC上为尚未盘点完成的盘点单进行数据补录,操作体验同“执行盘点操作”即可

  • 执行盘点操作

    • 执行者在PDA上进入盘点页面,通过扫描或输入盘点单条码打开盘点单

    • 执行者在PDA上查看盘点说明、覆盖的库位;通过选择不同的库位,查看该库位下商品的在库库存

    • 如果执行者发现商品的实际数量和系统在库库存不符,则需要在PDA上录入实盘库存;如果相符则不需要填写任何数字,查看确认即可。点击切换库位、上下翻页、提交按钮均可视为执行者查看并确认了当前展示的商品在库库存

    • 当盘点单中所有库位的所有商品都盘点完成后,执行者需要确认盘点执行人、备注等信息,点击提交按钮完成本次盘点

    • 在盘点完成前,执行者可以随时查看和调整实盘库存和备注,也可以随时按提交将当前填写的信息暂存;一旦盘点完成,盘点单中的信息都无法再修改

    • 盘点完成时,系统需要自动更新在库库存为当前实盘库存

自评标准

本课程作业的满分为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. 执行盘点时,即便仓库内网络不稳定,执行者也可以在已经打开的页面上确认在库库存、调整实盘库存,当网络恢复时,再一并提交

模板与示例

数据模型

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

数据模型仅供参考,有必要时可自行调整,不做评分要求。

ER图

后端WebAPI定义

根据需求描述,在第一阶段的基础上,开发以下服务端命令。

名称

目的

参数

输出值

示例

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:基础类型,用户输入的其他注意事项


所有服务端命令均需要做异常处理,捕获异常后,将返回码设置为ExceptionCode,返回信息设置为ExceptionMessage。

前端页面定义

页面名称

目的

开发模式

特殊要求

示例

CheckManagement

盘点单管理页面

单体(数据绑定)


https://hac.app.hzgcloud.cn/course_dev_homework/CheckManagement

create

创建盘点单

单体(数据绑定)


https://hac.app.hzgcloud.cn/course_dev_homework/CheckManagement

点击【查看】链接

detail

查看盘点单

单体(数据绑定)


https://hac.app.hzgcloud.cn/course_dev_homework/CheckManagement

点击【创建】按钮

check

执行盘点

前后端分离

不允许在页面可见区域内使用表格

出于性能考虑,详见:挑战极限,如何优化PDA设备上的性能表现

https://hac.app.hzgcloud.cn/course_dev_homework/check

自我评价

您可以根据作业要求自行自评打分,如果需要获取葡萄城的专家点评,请与您的伙伴经理或销售经理联系。如果您初次接触葡萄城,请点击链接预约技术顾问


学习资料
大作业模板:模板(V9.0.1.0).fgcc

需登录下载: 101