1 Star 0 Fork 934

jake_jia / GreaterWMS

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

1.0版本将不再更新,2020年12月会更新2.0版本,增加上下游聊天沟通,VMI设置和看板拉动,波次拣货,并不再提供开发者文档,软件将自带开发者API文档

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:China: 2018SR517685

Gitee Link:Gitee

Technical QQ community:1051907485


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


Server deployment:

$ pip install -r requirements.txt

Install Python Library

$ python manage.py makemigrations

Run Django database migrate file.

$ python manage.py migrate

Confirm migrate database. Django Primordial support sqlite3 database. If you wanna change database to others. Please editor singosgu/settings.py.

Run Server:

Local Server

$ python manage.py runserver

Local Server Port Customize

$ python manage.py runserver 0.0.0.0:8001

If you customize the Port. The user in local area network can use 'server IP:Port' to browse the software

Production Server Run:

Nginx Config:

Only example for Nginx. You can get example nginx.conf in project files. Exchange you server nginx.conf is ok. Take attention the project path & domin name in nginx.conf must be real.

Install uwsgi:

$ pip install uwsgi

If you use virtual environment. You must install uwsgi in Production Environment once, then install uwsgi in virtual environment once again.

Run uwsgi:

$ uwsgi -x /path/to/***your project path***/mysite.xml

If you don't want the project refresh while the code changed . You can set py-autoreload as 0(zero)

uwsgi reload:

$ uwsgi --reload /path/to/***your project path***/mysite.pid

Uwsgi recorded a pid file. Each time you want to reload the uwsgi . Reload this pid is ok


Develop Extend:

According to front-back stage decoupling method. It support you to develop more extend software

Logistic_AI_ROBOT_AGV

* The project of AGV has been open-source. It use Tracking sensor,Ultrasonic obstacle avoidance sensor, Infrared obstacle avoidance sensor. Base on HTTP protocol & WEB Web Framework. In order to ensure safety, data interchange must bind AGV's MAC address and IP address .

Sales Management System

* Don't use warehouse modular, API can support fast develop a sales management system.

APP & WX Mini Program

* API can support you develop a real time data monitoring system.

SCM

* Goods' QTY, Create_time, Last_update_time be detailed record. So you can analyst the inventory cleary and develop a SCM system.

Multi Warehouse Management

* Openid is user's unique identification. Data unique identification is appid. Data-line unique identification is t_code. So it facilitate support Multi Warehouse Management

Wave Picking, Shipping

* Can set Cyclical-Requests to realize Wave picking & shipping.

Milk-Run

* Can edit supplier & customer's authorization. Let them know the goods demand & consumption

VMI

* Ditto

Picking Route Optimization

* You can set picking route rule to imporve picking productiveness.


Develop Guide:

baseurl

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

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请求的数据


WMS Project Show:

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/jake_jia/GreaterWMS.git
git@gitee.com:jake_jia/GreaterWMS.git
jake_jia
GreaterWMS
GreaterWMS
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891