电商老板向ERP厂商提出该部分需求,希望能追踪退货流程,对快递和客户进行剖析查询,对因快递公司任务造成的,须要向快递公司索赔。但电脑ERP相对成熟稳定,厂商不愿为某一个电商而变动他们的系统。同时该退货系统与ERP关联性不大,遂电商老板操持建立一个独立的系统进行退货流程管理。
二、需求剖析
系统首先获取预退货清单,该清单可以由客服录入,也可以通过各种电商平台接口获取,然后快递单退回入库时,通过扫码枪扫码入库,入库单号与预退货单进行匹配,如果匹配成功,则进入拆包考验流程,仓库对拆包结果上传,可以正常完结该订单,也可以录入拆包非常缘故原由,如退回空包、寄回货色不对等。
末了,由客服职员对订单进行确认关闭或导出非常赔付清单。对付长期未匹配成功的订单自动进入超时订单,客服可以将超时订单设置为协商不退货,或丢包。电商管理职员须要登录后台,查询各种报表,对快递公司和退货频物品,退货成功率等进行稽核,进一步提升产品发卖空间,减少不必要的支出,提升利润。全体流程如下图:

根据以上需求,将全体系统分成几个部分:
(一) 仓库电脑端,卖力对退货入库的订单进行扫码,提交到做事器,并打印当日流水给快递员,防止后期索赔轇轕。
(二) 接口端,卖力将仓库扫码结果吸收入库。该部分业务逻辑只管即便大略,只须要对错单、重复单等进行额外的判断后,直接入退货表即可。
(三) 后台做事,卖力预退货单与退货单进行匹配、丢包单与入库单匹配、将超过一定韶光的预退货单置为超时等后台任务。
(四) 后台管理系统WEB端,仓库管理员对入库单拆包考验结果进行录入,客服卖力预退货单采集录入、拆包正常订单完成归档、非常订单查询导出、赔付信息录入、超时订单处理等。电商公司管理职员则可以登录查询各种统计报表,进行决策剖析。
三、技能框架
(一)仓库电脑端,由于须要监听扫码枪输入,肯定须要写一个后台做事或托盘程序,看着仓库里的几台windows操作系统,C#肯定最拿手了,决定利用wpf写一个监听程序,与做事端进行通讯。数据暂存在本地sqlite数据库。本来想研究一下SQL Server Compact的,微软的帮助文档写的至心混乱,网上资料也比较少,赶韶光就用了SQLite。我们知道SQLite默认是没有用户认证的,以前写android时曾经研究过一个sqlcipher,可以实现用户认证,保护本地数据安全。
(二)接口端,由于工期非常紧,加之需求变革可能比较多,做事端我用了PHP,利用thinkphp框架,以前写的一个大略的权限管理可以直接拿来用,为了赶韶光,业务逻辑、数据库curd全部放到controller里了,没有用model。从网高下的bootstrap模板连续用。
(四)后台做事,客户做事器在阿里云,是一台centos做事器,tp的定时任务觉得像是假的。决定用springboot写一个jar包,扔到做事器上后台刷时钟。
(五)后台WEB端,与接口做事共用,用的tp3.2。controller+view全部搞定。重复造了不少轮子。
(六)数据库,利用轻量级mysql,数据库建模利用powerdesign。
嗯,差不多了,就用了这么多技能,客户不须要手机端,否则我还可以虚假一下野生程序员MIS全栈能力。
WPF
四、界面预览
客户端登录
客户端选择快递
客户端扫码监听界面
WEB后台首页
预退货单管理界面
已完结订单统计查询
丢包单统计查询