写开源项目的想法由来已久,先前也做过尝试,通过插件模式开发的WPF权限控制框架。然而一直没有坚持下来,主要有两方面的原因**:一是时间有限,对基础开发框架也不感冒,毕竟社区里面已经有不少了;二是走产品路线的话,除了需要了解业务,编码需要更多的时间投入。**
但当了解到Odoo这样的低代码平台后,我想情况就会有改变了。Odoo采用python开发语言,有近20年的发展历史,每年10月份都会有新产品发布;社区活跃,在全球范围内,有50000+ 公司使用Odoo发展其业务。
把使用Odoo做开源产品的想法跟几个小伙伴沟通后,大家也都觉得好。于是先从第一款产品"物流管理系统"开始,因为我们几个人中有参与过物流项目的经验,以下是手机端的项目截图。
微信小程序截图
手机蓝牙打印截图
开篇先参考通用的物流项目,整理出常用的菜单,后期会根据具体业务需要对菜单进行调整,代码如下:
1 <?xml version="1.0" encoding="utf-8"?>
2 <odoo>
3 <menuitem name="物流" id="logistics_root" />
4
5 <menuitem name="档案管理" id="archives_firstmenu" parent="logistics_root" sequence="1"/>
6 <menuitem name="货运" id="freight_secondmenu" parent="archives_firstmenu"/>
7 <menuitem name="客户分类管理" id="khflgl_thirdmenu" parent="freight_secondmenu" action="waybill_action"/>
8 <menuitem name="包装方式" id="bzfs_thirdmenu" parent="freight_secondmenu" action="waybill_action"/>
9 <menuitem name="货物档案" id="hwda_thirdmenu" parent="freight_secondmenu" action="waybill_action"/>
10 <menuitem name="保价费率" id="bjfl_thirdmenu" parent="freight_secondmenu" action="waybill_action"/>
11 <menuitem name="往来" id="dealings_secondmenu" parent="archives_firstmenu"/>
12 <menuitem name="运力分类管理" id="ylflgl_thirdmenu" parent="dealings_secondmenu" action="waybill_action"/>
13 <menuitem name="承运合同管理" id="cyhtgl_thirdmenu" parent="dealings_secondmenu" action="waybill_action"/>
14 <menuitem name="合作单位管理" id="hzdwgl_thirdmenu" parent="dealings_secondmenu" action="waybill_action"/>
15 <menuitem name="目的地名管理" id="mddmgl_thirdmenu" parent="dealings_secondmenu" action="waybill_action"/>
16 <menuitem name="内部" id="internal_secondmenu" parent="archives_firstmenu"/>
17 <menuitem name="内部公告管理" id="nbgggl_thirdmenu" parent="internal_secondmenu" action="waybill_action"/>
18 <menuitem name="部门职员设置" id="bmzysz_thirdmenu" parent="internal_secondmenu" action="waybill_action"/>
19 <menuitem name="异地网点配置" id="ydwdpz_thirdmenu" parent="internal_secondmenu" action="waybill_action"/>
20 <menuitem name="会计科目设置" id="kjkmsz_thirdmenu" parent="internal_secondmenu" action="waybill_action"/>
21
22 <menuitem name="物流管理" id="logistics_firstmenu" parent="logistics_root" sequence="2"/>
23 <menuitem name="始发站" id="start_secondmenu" parent="logistics_firstmenu" sequence="1"/>
24 <menuitem name="导入外部运单" id="drwbyd_thirdmenu" parent="start_secondmenu" action="waybill_action"/>
25 <menuitem name="货物托运凭证" id="hwtypz_thirdmenu" parent="start_secondmenu" action="waybill_action"/>
26 <menuitem name="简单接货受理" id="jdjhsl_thirdmenu" parent="start_secondmenu" action="waybill_action"/>
27 <menuitem name="标准接货受理" id="bzjhsl_thirdmenu" parent="start_secondmenu" action="waybill_action"/>
28 <menuitem name="承运装车发运" id="cyzcfy_thirdmenu" parent="start_secondmenu" action="waybill_action"/>
29 <menuitem name="派工到门接货" id="pgdmjh_thirdmenu" parent="start_secondmenu" action="waybill_action"/>
30 <menuitem name="目的站" id="destination_secondmenu" parent="logistics_firstmenu" sequence="2"/>
31 <menuitem name="承运车辆到达" id="cycldd_thirdmenu" parent="destination_secondmenu" action="waybill_action"/>
32 <menuitem name="自提通知登记" id="zttzdj_thirdmenu" parent="destination_secondmenu" action="waybill_action"/>
33 <menuitem name="派工到门送货" id="pgdmsh_thirdmenu" parent="destination_secondmenu" action="waybill_action"/>
34 <menuitem name="中转物流登记" id="zzwldj_thirdmenu" parent="destination_secondmenu" action="waybill_action"/>
35 <menuitem name="第三方" id="third_secondmenu" parent="logistics_firstmenu" sequence="3"/>
36 <menuitem name="本地中介登记" id="bdzjdj_thirdmenu" parent="third_secondmenu" action="waybill_action"/>
37 <menuitem name="本地中介结算" id="bdzjjs_thirdmenu" parent="third_secondmenu" action="waybill_action"/>
38 <menuitem name="本地外包登记" id="bdwbdj_thirdmenu" parent="third_secondmenu" action="waybill_action"/>
39 <menuitem name="本地外包结算" id="bdwbjs_thirdmenu" parent="third_secondmenu" action="waybill_action"/>
40 <menuitem name="货品控制" id="goods_control_secondmenu" parent="logistics_firstmenu" sequence="4"/>
41 <menuitem name="条码扫描平台" id="tmsmpt_thirdmenu" parent="goods_control_secondmenu" action="waybill_action"/>
42 <menuitem name="货差控制明细" id="hckzmx_thirdmenu" parent="goods_control_secondmenu" action="waybill_action"/>
43 <menuitem name="自定条码打印" id="zdytmdy_thirdmenu" parent="goods_control_secondmenu" action="waybill_action"/>
44
45 <menuitem name="财务结算" id="financial_firstmenu" parent="logistics_root" sequence="3"/>
46 <menuitem name="应收" id="receivable_secondmenu" parent="financial_firstmenu"/>
47 <menuitem name="客户运费结算" id="khyfjs_thirdmenu" parent="receivable_secondmenu" action="waybill_action"/>
48 <menuitem name="其他收入结算" id="qtsrjs_thirdmenu" parent="receivable_secondmenu" action="waybill_action"/>
49 <menuitem name="客户运费变动" id="khyfbd_thirdmenu" parent="receivable_secondmenu" action="waybill_action"/>
50 <menuitem name="应收余额清零" id="ysyeql_thirdmenu" parent="receivable_secondmenu" action="waybill_action"/>
51 <menuitem name="应付" id="payable_secondmenu" parent="financial_firstmenu"/>
52 <menuitem name="司机运费结算" id="sjyfjs_thirdmenu" parent="payable_secondmenu" action="waybill_action"/>
53 <menuitem name="车辆报销结算" id="clbxjs_thirdmenu" parent="payable_secondmenu" action="waybill_action"/>
54 <menuitem name="垫付运费结算" id="dfyfjs_thirdmenu" parent="payable_secondmenu" action="waybill_action"/>
55 <menuitem name="中转费用结算" id="zzfyjs_thirdmenu" parent="payable_secondmenu" action="waybill_action"/>
56 <menuitem name="接货费用结算" id="jhfyjs_thirdmenu" parent="payable_secondmenu" action="waybill_action"/>
57 <menuitem name="送货费用结算" id="shfyjs_thirdmenu" parent="payable_secondmenu" action="waybill_action"/>
58 <menuitem name="其他费用结算" id="qtfyjs_thirdmenu" parent="payable_secondmenu" action="waybill_action"/>
59 <menuitem name="货损赔款结算" id="hspkjs_thirdmenu" parent="payable_secondmenu" action="waybill_action"/>
60 <menuitem name="业务返款结算" id="ywfkjs_thirdmenu" parent="payable_secondmenu" action="waybill_action"/>
61 <menuitem name="司机运费变动" id="sjyfbd_thirdmenu" parent="payable_secondmenu" action="waybill_action"/>
62 <menuitem name="货款" id="payment_secondmenu" parent="financial_firstmenu"/>
63 <menuitem name="代收收取结算" id="dssqjs_thirdmenu" parent="payment_secondmenu" action="waybill_action"/>
64 <menuitem name="代收网点过账" id="dswdgz_thirdmenu" parent="payment_secondmenu" action="waybill_action"/>
65 <menuitem name="代收网点对账" id="dswddz_thirdmenu" parent="payment_secondmenu" action="waybill_action"/>
66 <menuitem name="代收发放结算" id="dsffjs_thirdmenu" parent="payment_secondmenu" action="waybill_action"/>
67 <menuitem name="代收垫付结算" id="dsdfjs_thirdmenu" parent="payment_secondmenu" action="waybill_action"/>
68 <menuitem name="代收货款变动" id="dshkbd_thirdmenu" parent="payment_secondmenu" action="waybill_action"/>
69
70 <menuitem name="登记对账" id="reconciliation_firstmenu" parent="logistics_root" sequence="4"/>
71 <menuitem name="记账" id="accounting_secondmenu" parent="reconciliation_firstmenu"/>
72 <menuitem name="车辆报销登记" id="clbxdj_thirdmenu" parent="accounting_secondmenu" action="waybill_action"/>
73 <menuitem name="其他费用登记" id="qtfydj_thirdmenu" parent="accounting_secondmenu" action="waybill_action"/>
74 <menuitem name="其他收入登记" id="qtsrdj_thirdmenu" parent="accounting_secondmenu" action="waybill_action"/>
75 <menuitem name="资金流向管理" id="zjlxgl_thirdmenu" parent="accounting_secondmenu" action="waybill_action"/>
76 <menuitem name="对账" id="check_secondmenu" parent="reconciliation_firstmenu"/>
77 <menuitem name="应收款催收账" id="yskcsz_thirdmenu" parent="check_secondmenu" action="waybill_action"/>
78 <menuitem name="网点过账" id="wdgz_thirdmenu" parent="check_secondmenu" action="waybill_action"/>
79 <menuitem name="出纳对账" id="cndz_thirdmenu" parent="check_secondmenu" action="waybill_action"/>
80 <menuitem name="财务对账" id="cwdz_thirdmenu" parent="check_secondmenu" action="waybill_action"/>
81
82 <menuitem name="业务统计" id="statistics_firstmenu" parent="logistics_root" sequence="5"/>
83 <menuitem name="发站存货查询" id="fzchcx_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
84 <menuitem name="到站存货查询" id="dzchcx_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
85 <menuitem name="在途货物查询" id="zthwcx_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
86 <menuitem name="线路统计" id="xltj_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
87 <menuitem name="发站统计" id="fztj_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
88 <menuitem name="到站统计" id="dztj_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
89 <menuitem name="职员统计" id="zytj_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
90 <menuitem name="客户统计" id="khtj_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
91 <menuitem name="司机统计" id="sjtj_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
92 <menuitem name="接货统计" id="jhtj_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
93 <menuitem name="送货统计" id="shtj_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
94 <menuitem name="中转统计" id="zztj_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
95 <menuitem name="车辆报销统计" id="clbxtj_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
96 <menuitem name="其他费用统计" id="qtfytj_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
97 <menuitem name="其他收入统计" id="qtsrtj_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
98 <menuitem name="货物统计" id="hwtj_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
99 <menuitem name="中介统计" id="zjtj_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
100 <menuitem name="外包统计" id="wbtj_secondmenu" parent="statistics_firstmenu" action="waybill_action"/>
101
102 <menuitem name="财务报表" id="report_firstmenu" parent="logistics_root" sequence="6"/>
103 <menuitem name="总账财务报表" id="zzcwbb_secondmenu" parent="report_firstmenu" action="waybill_action"/>
104 <menuitem name="资产负债树形表" id="zcfzsxt_secondmenu" parent="report_firstmenu" action="waybill_action"/>
105 <menuitem name="资产负债平衡表" id="zcfzphb_secondmenu" parent="report_firstmenu" action="waybill_action"/>
106 <menuitem name="现金银行统计" id="xjyhtj_secondmenu" parent="report_firstmenu" action="waybill_action"/>
107 <menuitem name="收入统计" id="srtj_secondmenu" parent="report_firstmenu" action="waybill_action"/>
108 <menuitem name="费用统计" id="fytj_secondmenu" parent="report_firstmenu" action="waybill_action"/>
109 <menuitem name="利润表" id="lrb_secondmenu" parent="report_firstmenu" action="waybill_action"/>
110 <menuitem name="日记账" id="rjz_secondmenu" parent="report_firstmenu" action="waybill_action"/>
111 <menuitem name="明细账" id="mxb_secondmenu" parent="report_firstmenu" action="waybill_action"/>
112 <menuitem name="日统计" id="rtj_secondmenu" parent="report_firstmenu" action="waybill_action"/>
113 <menuitem name="客户往来账" id="khwlz_secondmenu" parent="report_firstmenu" action="waybill_action"/>
114 <menuitem name="司机往来账" id="sjwlz_secondmenu" parent="report_firstmenu" action="waybill_action"/>
115 <menuitem name="单位往来账" id="dwwlz_secondmenu" parent="report_firstmenu" action="waybill_action"/>
116 <menuitem name="代收往来账" id="dswlz_secondmenu" parent="report_firstmenu" action="waybill_action"/>
117 <menuitem name="收支流水账" id="szlsz_secondmenu" parent="report_firstmenu" action="waybill_action"/>
118 <menuitem name="收支日报表" id="szrbb_secondmenu" parent="report_firstmenu" action="waybill_action"/>
119 </odoo>
View Code
项目运行截图:
源码源码地址:github
感兴趣的朋友可以加入qq群组:567961463
阅读原文:菜园工程师