TSS 开发案例:营业记账(SAAS版)


通过注册成为它山石平台的开发者,开发一个微型案例《营业记账》,发布成SAAS服务供企业商家使用。全程大概需要30分钟时间。

案例背景

闭上眼睛,想象你正经营着一家洗车店,每天的工作就是营业、记账,一天结束了做一次对账,每周/月/季/年,分别汇总对账。你需要时刻关注自己的账本,掌握盈亏情况,针对性调整商品服务内容、价格等,刚开始你用小本子记账,用计算器算账;后来你用Excel;再后来你开了几家分店,你发现Excel也慢慢满足不了需求了。比如:

  • 每个分店都有一本自己的账本,无法实时、全方位地掌握整体营业情况,有些亏本项目很晚才被发现;
  • 手工记账出错率很高,无法进行严格有效的校验;查账对账效率低下;
  • 无法随时随地在手机上实时看到整体及各个分店的营业情况;
  • 如何对客户进行精准促销,灵活按照季节、节假日等因素设置营销策略,最好由系统自动进行营销;

类似的小店在生活中数不胜数。针对这些需求,传统的记账本或Excel,或单机版的记账软件已很难满足需求,找人定做一个软件又太贵。生意靠精打细算,小店虽小,数字化管理同样重要,数字化是实现高效管理的前提,也是小店做大做强的基础,生意越大越是如此。下面且看TSS如何有效解决上述需求。

准备工作

打开浏览器(推荐使用谷歌的Chrome浏览器,可在百度搜索【 chrome 下载 】),然后通过下面两种方式之一进入系统:

方法1(推荐):打开卜贝官网的在线演示环境: http://ebi.boubei.com ,开始体验并完成本文下面的所有步骤。

方法2:下载TSS安装到自己机器,请参考《TSS 安装指南》, TSS是一个免费且开源的软件,安装后可永久免费使用和享受版本升级。安装完成后,系统为一个刚初始化好的空白系统,登陆页为: http://127.0.0.1:9090/tss/login.html

打开登陆页后,将自己注册成为一个开发者:切换到注册页,按提示填写完成后,点击【开发者注册】,如下图:

注册完成后系统会自动登录(如果密码设置过于简单,系统会要求修改成更安全的密码后才允许进入系统)。进入到如上右界面,你可以看到开发者所拥有的全部功能菜单,也可以看到其它开发者开发完成后发布出来的功能模块。下面开始您的开发之旅吧,如果你没任何开发经验,也不用担心,我们的软件和案例足够简单。

设置角色

首先根据背景描述,我们大致得出,有两种角色参与(连锁)洗车店的日常经营,老板和店长。店长负责分店的运营,每天记录并查看本店的经营数据,对于其它店的业务无权查看。老板需要掌握所有分店的运营情况。打开【开发管理】下功能菜单【设置角色】,参照下图为创建两个新角色:“老板”和“店长”。分别保存成功后,右边角色组下可以看到新建的角色节点。


创建数据录入表

创建《价目表》

【开发管理】下功能菜单【数据表】,创建洗车店服务价目表,内容包括商品服务名称、收费标准、图片。如下图:右键点击“XX开发目录”节点,选择菜单【新增数据表】 点击【配置】按钮,在弹出的字段编辑器里,分别配置三个字段信息如下,完成后点击【完成配置】。 完成配置后,得到的配置结果内容及预览如下:

[
  {'label':'商品服务名称','code':'name','nullable':'false'},
  {'label':'标准收费','code':'fee','type':'number','nullable':'false'},
  {'label':'图片','code':'img','type':'file'}
]
点【保存】按钮提示创建成功后,左边资源树节点上会多出一个“价目表”的节点。双击节点即可打开该数据表开始录入数据,如图:

创建《营业记账表》

这一步开始创建记账录入表,记账信息包括分店、日期、商品服务、数量、收费金额、业务员,再加一些辅助信息:客户、奖金提成、备注等,以便分析。 相应内容可以从下面贴出来的源码里复制,然后黏贴进去(注:红色的price_list是上一步创建的价目表的数据库表):

[
  {'label':'分店','code':'shop','options':{'codes':'一号店|二号店|三号店'},'width':'160','nullable':'false','isparam':'true'},
  {'label':'日期','code':'day','nullable':'false','type':'date','defaultValue':'today-0','isparam':'true'},
  {'label':'商品服务','code':'item','nullable':'false','type':'string','cwidth':'100px','jsonUrl':'/tss/xdata/json/price_list','isparam':'true'},
  {'label':'数量','code':'qty','type':'int','defaultValue':'1','cwidth':'40px','width':'100'},
  {'label':'收费','code':'fee','type':'number','nullable':'false','width':'100','cwidth':'40px'},
  {'label':'客户','code':'customer'},
  {'label':'业务员','code':'salesman'},
  {'label':'提成','code':'reward','type':'number','cwidth':'40px','role1':'老板','width':'100'},
  {'label':'备注','code':'remark','height':'80','width':'350','cwidth':'150px'}
]
其中【商品服务】列是一个根据价目表生成的下拉列表,设置方式参考下图,点击【数据服务】按钮,在弹出界面里双击选中【价目表...】

注:如何控制“提成”这个数据项只能由老板录入,而禁止店长私自录入,如下图进行设置:

创建完成后,双击新增的树节点【营业记账】,即可开始记账录入数据。

设置数据表权限

数据表开发完成后,下一步需要把权限开放给前面创建的角色“老板”和“店长”,然后这两角色的对应人员便可登录系统正式使用功能。店长只能录入数据,老板可以对不同店长录入的数据进行管理。如下图,打钩完成后点击【保存授权】。 接着把“价目表”这个数据表的权限也开放,使店老板可以自行增加、修改店内的价目表,店长则只能浏览里面数据。 完成后,就可以开始录入数据进行测试了。可以下载以下测试数据《洗车店价目表》,然后【Excel导入】到数据表。

至此,您已完成了数据录入表的开发,整个过程没有涉及任何编程,就像用Excel设计一个电子表格一样简单,具备Excel的记录数据的功能,同时还支持多人协作、在线录入、灵活的权限控制等Excel无法实现的效果。TSS支持更复杂的录入表设计,可以通过JS编写控制脚本,对录入界面的任意元素进行控制,也可以对数据进行灵活的行级、列级控制,充分满足个性化、定制化需求。TSS录入表还支持完全自定义录入界面,兼容第三方系统,通过TSS发布出来的数据表接口,对数据进行各种增、删、改、查、统计汇总、附件管理等操作。更多案例可参考卜贝官网的在线演示环境: http://demo.boubei.com ,以及《TSS 开发者指南》


创建报表

生成每日对账报表

有了上一章《TSS 开发案例:营业记账之录入表》创建的录入数据表,并且录入测试数据后,下一步,我们就可以开始设计如何分析这些数据,来为日常的运营提供帮助和指导。首先我们做一个是对账功能,店长们每天再不用拿计算器加减乘除了。以开发者身份登录后,打开【服务&报表】,在您的开发目录下创建一个报表“营业额对账”: 其中“报表参数”可以使用编辑器来完成,点【配置】,参数默认值严格填写(分别为:today-30 和 today-0)
建议先自己手动输入,充分体验开发的乐趣,不要轻易复制下面的代码:

 select day 日期,  sum(fee)  当天金额
 from  ${s_order}
 where  day >= ? and day <= ?  
 group by day

[
  {'label':'开始日期','type':'date','defaultValue':'today-30','nullable':'false'},
  {'label':'结束日期','type':'date','defaultValue':'today-0','nullable':'false'}
]
录入完成后,点击保存,新建报表默认为“停用”状态,右键点击报表节点,选择菜单【启用】,启用报表,同时把“查看报表”权限开放给“老板”和”店长“角色: 虽然两个角色都被授予了“报表查看”权限,但彼此看到的数据不一样。店长只能看自己所在店营业额数据,而老板可以看到所有连锁店的营业额数据。

完成后,双击或右键菜单【报表查询】“营业额对账”树节点,已经可以查看报表了,报表很简单,只有两列数据,但它的衍生场景非常丰富,可以快速便捷的分发数据。可以导出到本地Excel、或作为一个数据服务供报表定制页面调用作为API数据接口对接第三方系统通过定时邮件推送报表数据给指定人员等。

注:查询报表后,又新录了新的数据,而再次查询时如果数据没有在报表里体现出来,试试改变当前默认的查询条件,然后再查询。因为每一次查询数据,查询条件及结果默认会被缓存3分钟,如果不改变查询条件,数据最长要在3分钟后才能自我刷新。数据缓存可以有效提高查询效率,减轻数据库压力,详细参考:设置数据缓存策略

生成分析图表

上一步完成了一个表格展示的报表,下面再来一个图表展示的报表。如下图填入报表信息,展示页面选择【/tss/more/bi_template/timespace.html】,保存后和上面步骤一样,【启用】报表后再把“查看报表”权限授给“店老板”。

 select day,  shop space1,  item space2, sum(fee)  value
 from  ${s_order}
 where  day >= ? and day <= ?  
 group by day, shop, item
完成后,双击创建出来的“营业额分析”,可以看到报表的效果(前提是你要录入了足够多的测试数据:分不同分店、日期、项目录入,录个10条左右),点击图表上的点或柱,可以产生联动效果。 我们可以通过定制模板页面来实现各种丰富的图表展示效果,您可以引入任何您喜欢的可视化组件:echarts、D3、highCharts、EasyUI等,然后读取报表查询所得的数据,进行自由定制,TSS无限自由地支持这类定制。示例参考安装包里 more/bi_demo/demo1.html、pages目录下各个案例等。

手机端展示

在如今这个移动时代,自然少不了移动访问TSS的需求。TSS移动端的开发方式和PC端完全一致,都是基于HTML5开发,无需安装任何APP,打开手机浏览器即可访问。当然,由于手机和PC的屏幕差异巨大,需要为手机端专门定制一套展示框架。具体开发步骤参考 mobile/demo_jz.html,不再详细展开,这里上图看效果:

发布功能模块

打包发布

上面步骤都完成后,整个营业记账所需的功能都已开发完成,开发者创建的功能目录默认只对开发者本人可见。下面对它进行发布,只有发布后,其它注册用户才可以选择试用。发布只需填写名称和分类,选定相关的角色集,状态设置为“已发布”,填写相应的介绍信息,保存即可。 发布后,刷新整个页面,可以在首页看到新发布的功能模块。其它用户可以试用你发布的功能模块,也可以下载导出功能模块,然后导入至用户自有的TSS系统里试用。下一节将演示其它注册用户如何选择试用你发布的功能。

创建试用用户

当开发者把自己做好的功能发布后,为每个角色创建相应账号,就可以开始使用功能服务。这里我们直接在当前开发者所处的域下创建试用账号。

打开【用户管理】,参照下面截图,分别创建几个你设想的分组、人员,并为人员设置角色,要求每个角色都要有对应的人员(比如,一个老板:boss,两个店长:staff1、staff2),如果人员很多,还可以先创建用户组,再分别在不同用户组下创建人员。创建完成后分别用这些账号进行登录并录入数据。

新注册一个企业试用

一个企业级用户可以有多个人员使用系统,他们使用过程中创建的数据都被严格隔离在该企业注册时生成的域内,跟其他企业域数据互不可见。开发者每开发一个功能,都可以支持多个企业共用。现在退出系统重新注册一个企业账号【润浩汽修】。注册成功后,自动登录系统,在首页里可以看到一个可选择的功能模块列表,同时新企业账号也是一个独立的开发者,有自己的开发目录。TSS支持多开发者,开发者都可以发布自己开发的一个或多个功能模块,企业用户注册后自行选择需要的功能模块。

点击”选择试用“后,系统会自动刷新,变成下图,可以看到此模块所有的录入表和报表都已经是可见状态。

和上一步“创建试用用户”一样,在当前企业域下创建相应的试用账号(比如,一个老板:boss,两个店长:staff1、staff2)。然后注销当前企业账号,改用“老板”角色的账号登录系统,第一步先设置价目表(注:前面开发者导入的价目表,新企业域的用户不可见,需要重新创建属于本企业的价目表)。可以逐个新增服务项目,或下载以下测试数据《洗车店价目表》,然后【Excel导入】到数据表。然后注销“老板”,改用任一店长的账号的登录,开始录入数据: 当录入一定的数据后,注销当前店长账号,重新用“老板”角色的账号登录系统,即可以看到店长录入的数据信息,可以为每笔业务设置提成,还可以看到对账及图表分析报表,自行体验吧。

邮件推送和订阅

开发完上面的录入和报表后,各类角色的人员登录系统已经可以完成日常管理所需的各种操作。用户不用登录系统,也可以通过定时邮件推送来接收到报表数据。
邮件推送设置参考:报表定时邮件推送设置
管理员设置为可推送(或可订阅)的报表,用户在自己登录后界面里可自行订阅报表数据。

企业用户定制

用户B是一家洗车店的老板,虽然也在注册后试用了营业记账功能,但他发现自己的需要多加几列数据,比如车牌号、车品牌等。有两种方式可以帮他实现:

  • 1、他可以联系原开发者,要求定制一款满足他的需求的记账功能;
  • 2、自行下载既有的模块,导入模块,自行进一步定制,重新发布出来给自己及同行使用。

相比而言,第二种方式更值得一试。总所周知,SAAS服务最大的命门是无法有效为个性化需求进行定制,而基于本平台搭建的SAAS服务可以轻松地进行二次定制开发,满足不同的个性化、差异化需求。

如果您只需开发功能给自己的企业使用,那更简单,无需发布成SAAS,开发完成后直接授权相应角色即可。TSS支持单机开发,点击链接打开单机版的开发案例:TSS 开发案例:营业记账(单机版)

结束

至此,整个开发过程已经结束。对比传统的软件开发(比如:JAVA项目)或Excel记账,基于它山石开发无论是过程、速度、体验,都有非常大的优势。

麻雀虽小,五脏俱全,当完成上面的各个步骤,TSS最简单最基本的用法您都已经掌握了。无论多么复杂的业务需求,都可以拆成多个简单的构成。TSS做为一个在线开发数据表和报表功能的平台,有着非常细腻的粒度控制,在这些细粒度模块的支持下,可以搭建出满足各种行业各种业务需求的BI,后续还有进阶案例《进销存管理》《物流车队BI》,敬请期待。

TSS的安装请参考《TSS 安装指南》,更多TSS的介绍可关注《它山石数据管理平台简介》。更多详细的例子参考TSS官网演示环境: http://demo.boubei.com ,演示账号: demo,密码:www.boubei.com。

获得帮助:boubei@163.com  TSS社区: http://bbs.boubei.com ,QQ群:162875668