1 Star 0 Fork 934

李童 / Django_WMS

forked from GreaterWMS / GreaterWMS 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

Django_WMS--Open source warehouse management software


中文文档

Project Description:

Open source warehouse management software follows MIT protocol and front-back stage decoupling method. API uses restful protocol to facilitate for add-on functions development. The html & js code is constructed with quasar(base on Vue.js v2.6.0+). According to API, it can support business models such as multi warehouse, wave shipment, combined picking and milk-run and so on.

Software copyright Code:Chine: 2018SR517685

Gitee Link:Gitee

Technical QQ community:1051907485(If you need change baseurl & title, or custom Vue, please be free to join qq group)


Development Environment:

* Python v3.7.0 +

* Django v2.2.14(Django v2.2.14 can support Django-rest-swagger better. If you don't need Django-rest-swagger to debug api, you can pip install higher version Django)

* Django-rest-framework v3.9.2(Django-rest-framework v3.9.2 can support Django-rest-swagger better,If you don't need Django-rest-swagger to debug api, you can pip install higher version Django-rest-framework)

* Django-rest-swagger v2.2.0

* Django-silk 版本为v4.0.1(In production environment,please close silk,silk will leak user infomation)

* Quasar v1.7.2+

* Vue v2.6.0+

* API,follow restful protocol


构建命令:

$ pip install -r requirements.txt

安装python库

$ python manage.py makemigrations

运行数据库迁移文件

$ python manage.py migrate

创建数据库,django默认使用sqlite3作为数据库,如果需要mysql数据库,请在singosgu/settings.py里面进行配置

开发服务器运行:

运行开发服务器:

$ python manage.py runserver

运行在特定端口:

$ python manage.py runserver 0.0.0.0:8001

如果运行特定端口,局域网的电脑,只需要访问,运行电脑的ip+端口,即可以访问运行页面

生产服务器运行:

Nginx配置:

这里仅以Nginx配置为例,将项目下的nginx.conf替换服务器端的nginx.conf即可,注意更改nginx.conf里面的项目地址和域名

uwsgi安装:

$ pip install uwsgi

如果你使用了虚拟环境,那uwsgi的安装需要正式环境安装一遍,再在虚拟环境中安装一遍

uwsgi挂载:

$ uwsgi -x /path/to/***你的项目路径***/mysite.xml

如果不希望代码更改后,自动刷新挂载,可以把py-autoreload设置为0

uwsgi重新挂载:

$ uwsgi --reload /path/to/***你的项目路径***/mysite.pid

uwsgi已经记录了pid文件,每次重新挂载只需要reload这个pid就可以了


开发扩展:

因为使用的前后端分离的设计,所以可以通过API,开发更多的软件应用

物流智能AGV

* AGV的项目也已经开源,由于场地受限,仅实现智能发货,定点回库,使用的循迹感应器,超声波避障感应器,红外避障感应器,所有的指令通过网络传输,AGV绑定MAC地址和IP地址,保证了安全性

进销存

* 不使用仓库设置模块,直接使用商品设置和供应商及客户设置,可以快速搭建一个进销存系统

APP和小程序

* API的组合可以达到1万种,这样我们可以根据查询请求,来获得实时报表和数据监控

供应链管理系统

* 产品的数量,创建时间,最后使用时间是各方面统计的,所以可以方便采购计划和调拨计划进行库存的分析

多仓管理

* openid为用户的唯一标识,数据统一标识为appid,数据t_code为数据在服务器的唯一标识,所以很方便可以实现多仓管理

波次拣货,发货

* 可以设置固定时间向服务器发出请求,从而达到波次拣货的功能

Milk-Run

* 可以给供应商或者客户设置权限,让他们可以查询到固定产品的库存消耗

VMI

* 同上

拣货路线优化

* 库位的设置决定了拣货的效率


开发指南:

baseurl

* statics/baseurl.js是发起请求的基本网址,如果是本地调试,则默认为http://127.0.0.1:8000/ ,如果部署在服务器,则需要将其改为你的网站访问url

title

* statics/title.js是软件名称,将修改主页面的软件名称

icp备案信息更改

* statics/icp.js是软件的备案信息,将修改主页面的备案信息

django-silk

* django-silk为开发时的调试工具,可以统计每个接口的响应速度,如果需要部署到生产环境,请删除django-silk相关配置,因为会有泄露用户信息的风险,或者直接修改django-silk,让用户只能看到自己的请求数据

django-rest-swagger

* swagger会生成软件的开发者文档,访问'baseurl' + '/docs/',就可以看到具体的开发者文档,同时还可以对接口进行调试, 开发者文档使用的YML的格式,也可以自己在APIView里面修改,注意接口,get是修改get请求的API文档,post是修改post请求的API文档

数据库设计

* 数据库设计时考虑到数据迁移等问题,所以只有users里面的user_id和django自带的user_id做了外键,其余所有字段全部没有使用外键,方便数据备份和数据库迁移

关于数据传输

* post,patch,put请求会传输一个数据data,可以是一个json数据,也可以是一个json数据组,传输的data会被utils/datasolve处理,来判断是否有js文件或sql注入,从而保证了后台数据库的安全性,每个前端给后端发的请求,都会核对用户的唯一标识,以防止用户数据串流

openid

* openid是注册用户的唯一标识,当管理员直接注册时,会有developer=1这个管理员标识,管理员具备最高权限,而由管理员,或有新增用户权限的用户新建的用户,developer=0,developer作为管理员标识存在,每次向服务器发起请求,都需要url传值这个openid,服务器端会根据这个openid来判断是否为正常用户,从而保证数据不会被混乱访问,同时也可以根据openid来记录具体的访问用户,作为数据追溯依据,可以使用request.auth获得该条数据

appid

* appid是数据源唯一标识,每次新建用户(员工账号)时,用户的appid都会统一为管理员账号的appid,从而达到了所有数据的统一性,即新用户A在发起数据请求时,会带上自己的openid,服务器端根据这个openid去链接appid下的所有数据,防止访问到其他用户的数据,可以使用request.user.appid获得该条数据

用户权限

* 用户信息已经设计了权限管理,共45个,有字段aut1~~aut45,可自定义权限管理,先未对权限管理数据传输做任何限制,可自定义添加

t_code

* t_code是数据存在数据库里面的唯一标识,是具有唯一性的,所有的数据修改和删除,都是使用t_code来判断的,避免使用id判断时,会出现数据误操作,该条数据是由当时的时间戳+传入的一个string值,合并生成的MD5码

get请求设计

* get请求已经做好了分页设计,传值时:max_page参数为每页最大显示多少条内容,默认设计是1000条数据,因为如果数据过多,会造成数据较慢; page参数为请求第几页的数据,一般在返回的数据中,有一个totalpage参数,可以知道一共有多少页

数据传输流程

* 一般post,patch,put是4段式设计,1--审查用户权限,会return一个值'Y' or 'N',2--审查数据的安全性, 3--审查数据是否可以存入数据库或修改数据库数据,4--新增或修改数据,并返回一个data给到前端,这样做可以避免数据增删改的时候出现误改的情况

数据库设计

* 数据库设计时考虑到数据迁移等问题,所以只有users里面的user_id和django自带的user_id做了外键,其余所有字段全部没有使用外键,方便数据备份和数据库迁移

小程序开发

* 由于小程序不支持patch请求,所以需要自信在django中设置一个views,来访问patch请求的数据


项目展示:

MIT License Copyright (c) 2020 Elvis.Shi,史云龙,China,Shanghai, Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

开源仓储管理软件,遵循MIT协议,前后端分离,api使用restful协议,方便二次开发,前端代码使用quasar进行构建,利用API,可以支持多仓,波次发货,合并拣货,Milk-Run等业务模型 展开 收起
Python
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/litong860418/Django_WMS.git
git@gitee.com:litong860418/Django_WMS.git
litong860418
Django_WMS
Django_WMS
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891