且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

xx新零售生鲜盘点经验分享

更新时间:2022-03-09 08:05:53

一,接手生鲜盘点前的情况

在接手盘点前,生鲜这块已经盘点过一次,具体有这些问题:

1,代码逻辑上存在问题,需要整体审核代码修正

2,这次盘点大体都是通过脚本修数解决,有些数据存在空值

3,这次盘点过后,BA就释放离场了,这客观上给新接手的人带来了业务理解上的负担

4,页面打开比较慢,接口中的sql语句性能存在问题

5,生鲜盘点汇总中计算损溢金额的逻辑相对比较复杂,还要涉及到盘点机以及OA那边的审核,需要多次逻辑确认

a,库存数量=上期盘点数量+本期入库数量+冲红数量+本期移入数量-本期移出数量

 b,盘点金额含税=上期盘点金额含税(直接获取)+本期入库金额含税(单据中取)+冲红数量金额含税+本期移入金额含税-本期移出金额

 c,盘点金额未含税=上期盘点金额未含税(直接获取)+本期入库金额未含税(单据中取)+冲红数量金额未含税+本期移入金额未含税-本期移出未金额

 d,初盘数量=PDA提供的数量

 e,复盘数量=PDA提供的数量

 f,含税当前进价(要现算)=(入库金额含税+移入金额含税)/(入库数量+移入数量)

 g,未含税当前进价(要现算)=(入库金额未含税+移入金额未含税)/(入库数量+移入数量)

 h,损溢金额含税=b-e*f

 i,损溢金额未含税=c-e*g

二,问题的解决思路

1,理清生鲜盘点的业务逻辑,整理逻辑笔记,复述业务逻辑,与BA进行确认,这一步是前提

2,通读业务逻辑代码,找到疑惑点并记录下来,拉会讨论确认,确认有问题及时修复

3,关注影响性能的代码并打上标记并进行优化

4,对表的设计进行了补充,主要在盘点损溢表上新增了字段,能更方便的进行汇总盘点金额

5,为了更好的排查问题,准备好了核对结果的相关脚本

6,为了方便核对结果,写了winform程序的工具

7,与测试人员进行沟通,设计覆盖面全的测试用例

三,第一次生鲜盘点遇到的问题以及解决思路

虽然进行了严格的测试,接手后第一次线上盘点还是暴露了不少问题:

1,有新入库原材料的没能进入应盘材料里

2,盘点出现有些原材料未含税价格为0

3,盘点单点击审核不通过,但是显示已审核

4,盘点损溢表中有的材料在盘点详情表里面没有

5,汇总后库存金额不对

6,财务审核修改复盘数保存提交有问题

7,盘点金额含税有值但是盘点金额未税没有值

解决思路:

1,先把遇到的问题记录下来

2,分析产生问题的原因,因为是线上问题,时间紧迫,不能通过修复代码提交来解决问题,只能通过编写修数脚本,提工单的临时方案来解决

3,临时解决后,核查代码逻辑并进行修复发布

4,针对暴露的问题补充新的测试用例,回归测试等

四,第二次生鲜盘点遇到的问题

虽然按照上面的思路进行了问题的修复,第二次盘点也遇到了一些问题,由于疫情此盘点采取远程模式,问题的解决思路跟第一次一样

1,入库单条码为空的问题

原因:生鲜订单修改新增订单行(商品)时,订单行信息中的商品条码为空,导致生鲜入库单列表中商品条码为空,进而导致pda盘点数据下载失败

2,半成品的问题

原因:这期半成品原材料价格取的还是上期半成品的价格,程序上的bug

3,财务审核修改复盘数保存提交有问题

原因:保存提交估计代码存在bug

4,导出来的生鲜盘点数据发现,库存数量 与上月库存和本月入库数之和不一致

原因:因为上期的盘点数有可能取的不对,造成盘点金额不对,有复盘数但是复盘金额却为0

5, 半成品材料金额没列入到本期的盘点库存中来

原因:这个是prd问题,已经会议讨论过,把上期有半成品材料的盘剩的金额移到本期盘点中来

五,第三次生鲜盘点遇到的问题

有了前两次的盘点经验,第三次生鲜盘点遇到的问题就少多了,只要只有一个

1,生鲜盘点机的pda的半成品价格不对

原因:代码逻辑问题,远程没有盘点机,测试没有覆盖到,但不影响整个盘点结果,下次盘点前修复代码即可

六,总结

主要总结以下几点:

1,实践证明,每次的复盘总结是解决遗留问题行之有效的方法

2,设计测试用例非常关键,要覆盖所有的场景,尤其注意边界临界值上,比如这次遇到的时间节点边界就非常重要

3,测试不够全面,同样的问题本档口不出现,其他档口会出现

4,修数前要分析产生问题的原因,代码可以延期修复,不然同类问题还会重复出现

5,核查脚本的编写,辅助工具的应用能够提高排查问题的效率

6,线上日志的查看对定位排查问题帮助很大

7,与BA多沟通,能发现很多对业务理解的盲点,对解决以及优化问题有很大的帮助