一,接手生鲜盘点前的情况
在接手盘点前,生鲜这块已经盘点过一次,具体有这些问题:
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多沟通,能发现很多对业务理解的盲点,对解决以及优化问题有很大的帮助