WMS
1.0.0
창고관리시스템의 주요 기능은 다음과 같습니다.
시스템 기능에는 제품 입출고 등록, 입출고 정보 확인, 창고 정보 삭제 등이 포함됩니다.
시스템 관리자 기능: 인력 추가, 인력 삭제, 데이터베이스 정보 조회, 사용자 관리.
사용자 기능에는 데이터베이스의 정보 쿼리, 데이터베이스 외부의 정보 쿼리, 데이터베이스에 입력되는 정보 쿼리 및 사용자 비밀번호 수정이 포함됩니다.
관리인력의 분류에 따라 권한이 다른 사람은 관리기능도 다릅니다.
권한/기능 | 관리자 관리 | 사용자 관리 | 창고 관리 | 품목 분류 관리 | 아이템 관리 | 기록 관리 |
---|---|---|---|---|---|---|
최고 관리자 | √ | √ | √ | √ | √ | √ |
일반 관리자 | × | √ | √ | √ | √ | √ |
직원 | × | × | × | × | √ (제한사항 적용) | √ (제한사항 적용) |
품목 관리 기능에서는 직원이 조회만 할 수 있고, 기록 관리에서는 직원이 자신의 인바운드 및 아웃바운드 기록만 조회할 수 있습니다.
SpringBoot
: 백엔드 프레임워크MyBatisPlus
: 지속성 레이어 프레임워크Vue2
: Vue를 프론트엔드 프레임워크로 사용하여 프론트엔드와 백엔드를 분리한 프로젝트입니다.MD5
: 사용자 비밀번호는 MD5를 사용하여 암호화됩니다.Docker
: Docker 컨테이너를 사용하여 프로젝트 배포Git
: 버전 관리를 위해 Github 사용 vue 프로젝트 파일 아래의 main.js (다른 프로젝트에서 설정한 위치는 동일하지 않을 수 있음)
Vue.prototype.$httpUrl = 'http://{服务器ip}:{springboot端口号}';
eg:
Vue.prototype.$httpUrl = 'http://67.99.26.82:8081';
axios.defaults.baseURL="http://{服务器ip}:{端口号}"
Vue 프로젝트 디렉토리 아래
npm run build
패키지된 dist 파일을 springboot 프로젝트 resources/static
으로 이동합니다.
그림과 같이 프로덕션 환경을 활성화하고 정적 리소스 디렉터리를 구성합니다.
그런 다음 mysql, redis 비밀번호 등 생성 환경을 구성해야 합니다.
프론트엔드에서 jar 패키지 실행
java -jar xxx.jar
백그라운드에서 jar 패키지 실행
nohup java -jar xxx.jar > msg.log 2>&1 &
[root@iZbp144worluc8frpn60arZ nginx2] # pwd
/root/nginx2
[root@iZbp144worluc8frpn60arZ ~ ] # cd nginx2
[root@iZbp144worluc8frpn60arZ nginx2] # ll
total 8
drwxr-xr-x 6 root root 4096 Jun 27 19:52 html
-rw-r--r-- 1 root root 550 Jun 26 16:02 nginx.conf
nginx.conf
# user root;
worker_processes 1 ;
events {
worker_connections 1024 ;
}
http {
include mime.types ;
default_type application/octet-stream ;
sendfile on ;
keepalive_timeout 65 ;
server {
listen 80 ;
server_name localhost ;
location / {
root /usr/share/nginx/html ;
try_files $uri $uri / /index.html last ; # 别忘了这个哈
index index.html index.htm ;
}
error_page 500 502 503 504 /50x.html ;
location = /50x.html {
root html ;
}
}
}
html 디렉토리(여기에 패키지된 dist 파일의 압축을 푼다)
[root@iZbp144worluc8frpn60arZ nginx2] # cd html
[root@iZbp144worluc8frpn60arZ html] # ll
total 32
drwxr-xr-x 2 root root 4096 Jun 27 19:52 css
-rw-r--r-- 1 root root 4286 Jun 27 19:52 favicon.ico
drwxr-xr-x 2 root root 4096 Jun 27 19:52 fonts
drwxr-xr-x 2 root root 4096 Jun 27 19:52 img
-rw-r--r-- 1 root root 670 Jun 27 19:52 index.html
drwxr-xr-x 2 root root 4096 Jun 27 19:52 js
-rw-r--r-- 1 root root 1524 Jun 27 19:52 logo.svg
도커파일
FROM openjdk:8
EXPOSE 8082
ADD wms-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT [ "java" , "-jar" , "/app.jar" , "--spring.profiles.active=prod" ]
docker-compose.yml
version : " 3 "
services :
nginx : # 服务名称,用户自定义
image : nginx:latest # 镜像版本
ports :
- 80:80 # 暴露端口
volumes : # 挂载
- /root/nginx2/html:/usr/share/nginx/html
- /root/nginx2/nginx.conf:/etc/nginx/nginx.conf
privileged : true # 这个必须要,解决nginx的文件调用的权限问题
mysql :
image : mysql:latest
ports :
- " 3306:3306 "
environment : # 指定用户root的密码
- MYSQL_ROOT_PASSWORD={password}
privileged : true
redis :
image : redis:latest
wms :
image : wms:latest
build : src # 表示以当前目录下的Dockerfile开始构建镜像
ports :
- 8082:8082
depends_on : # 依赖与mysql其实可以不填,默认已经表示可以
- mysql
- redis
클라우드 서버를 사용하시는 경우 보안그룹(또는 방화벽)에서 해당 포트를 열어주세요.
[root@iZbp144worluc8frpn60arZ WMS]# ls
docker-compose.yml Dockerfile wms-0.0.1-SNAPSHOT.jar
[root@iZbp144worluc8frpn60arZ WMS]# docker-compose up -d
서비스가 정상적으로 시작되면 해당 홈페이지는 IP를 통해 접속이 가능합니다.