快遞物流倉庫管理系統java項目springboot和vue的前后端分離系統java課程設計java畢業設計

文章目錄

  • 快遞物流倉庫管理系統
    • 一、項目演示
    • 二、項目介紹
    • 三、部分功能截圖
    • 四、部分代碼展示
    • 五、底部獲取項目源碼(9.9¥帶走)

快遞物流倉庫管理系統

一、項目演示

快遞物流倉庫管理系統

二、項目介紹

語言: Java 數據庫:MySQL 前后端分離
前端技術 : Vue2 + ElementUl
后端技術 : SpringBoot2 + MyBatisPlus

登錄注冊

基礎管理:商品管理、員工管理、倉庫管理

銷售管理:銷售開票、銷售記錄

配送管理:申請配送、配送列表

運輸管理:車輛資料、駕駛員資料

圖表分析:入庫分析、出庫分析

系統管理:安全設置、操作員管理、權限列表

日志管理:登錄日志、操作日志

三、部分功能截圖

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

四、部分代碼展示

package com.example.api.controller;import com.example.api.exception.AccountAndPasswordError;
import com.example.api.model.dto.LoginDto;
import com.example.api.model.entity.Admin;
import com.example.api.model.entity.LoginLog;
import com.example.api.model.enums.Role;
import com.example.api.model.support.ResponseResult;
import com.example.api.repository.AdminRepository;
import com.example.api.service.AdminService;
import com.example.api.service.LoginLogService;
import com.example.api.utils.JwtTokenUtil;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/api/admin")
@Slf4j
public class AdminController {//獲取日志對象Logger logger = LoggerFactory.getLogger(AdminController.class);@Resourceprivate AdminService adminService;@Resourceprivate AdminRepository adminRepository;@Resourceprivate LoginLogService loginLogService;@GetMapping("hasInit")public boolean hasInit() {return adminRepository.existsAdminByRoles(Role.ROLE_SUPER_ADMIN.getValue());}@PostMapping("/init")public Admin init(@RequestBody Admin admin) throws Exception {admin.setRoles(Role.ROLE_SUPER_ADMIN.getValue());return adminService.save(admin);}@GetMapping("")@PreAuthorize("hasAnyRole('ROLE_SUPER_ADMIN' ,'ROLE_ADMIN')")public List<Admin> findAll() {return adminService.findAll();}@DeleteMapping("")@PreAuthorize("hasAnyRole('ROLE_SUPER_ADMIN' ,'ROLE_ADMIN')")public void delete(String id) {adminService.delete(id);}@PostMapping("")@PreAuthorize("hasAnyRole('ROLE_SUPER_ADMIN' ,'ROLE_ADMIN')")public Admin save(@RequestBody Admin admin) throws Exception {return adminService.save(admin);}@PostMapping("/login")public Map<String, Object> loginByEmail(String type, @RequestBody LoginDto dto, HttpServletRequest request) throws Exception {Map<String, Object> map = new HashMap<>();Admin admin = null;String token = null;try {admin = type.equals("email") ? adminService.loginByEmail(dto) : adminService.loginByPassword(dto);token = adminService.createToken(admin,dto.isRemember() ? JwtTokenUtil.REMEMBER_EXPIRATION_TIME : JwtTokenUtil.EXPIRATION_TIME);}catch (Exception e){throw new Exception("郵箱或密碼錯誤");}finally {loginLogService.recordLog(dto,admin,request);}map.put("admin", admin);map.put("token", token);return map;}@GetMapping("/sendEmail")public ResponseResult sendEmail(String email) throws Exception {Boolean flag = adminService.sendEmail(email);ResponseResult res = new ResponseResult();if (flag){res.setMsg("發送成功,請登錄郵箱查看");}else {res.setMsg("發送驗證碼失敗,請檢查郵箱服務");}res.setStatus(flag);return res;}}
package com.example.api.controller;import com.example.api.model.entity.Inventory;
import com.example.api.model.entity.InventoryRecord;
import com.example.api.model.vo.CommodityChartVo;
import com.example.api.service.InventoryRecordService;
import com.example.api.service.InventoryService;
import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;
import java.util.List;@RestController
@RequestMapping("/api/inventory")
public class InventoryController {@Resourceprivate InventoryService inventoryService;@Resourceprivate InventoryRecordService recordService;@GetMapping("")public List<Inventory> findAll() {return inventoryService.findAll();}@GetMapping("analyze")public List<CommodityChartVo> analyze(Integer type) {return recordService.analyzeCommodity(type);}//指定倉庫id//查詢某個倉庫的庫存情況@GetMapping("/warehouse/{id}")public List<Inventory> findByWarehouse(@PathVariable String id) {return inventoryService.findByWarehouseId(id);}//指定商品id//查詢某個商品在所有倉庫的庫存@GetMapping("/commodity/{id}")public List<Inventory> findByCommodity(@PathVariable String id) {return inventoryService.findByCommodityId(id);}//指定倉庫id//查詢某個倉庫庫內商品的出庫入庫記錄@GetMapping("/record/warehouse/{id}")public List<InventoryRecord> findRecordByWarehouse(@PathVariable String id) {return recordService.findAllByWarehouseId(id);}//指定商品id//查詢某個商品在所有倉庫出庫入庫記錄@GetMapping("/record/commodity/{id}")public List<InventoryRecord> findRecordByCommodity(@PathVariable String id) {return recordService.findAllByCommodityId(id);}@PostMapping("/in")public InventoryRecord in(@RequestBody InventoryRecord record) throws Exception {return recordService.in(record);}@PostMapping("/out")public InventoryRecord out(@RequestBody InventoryRecord record) throws Exception {return recordService.out(record);}}
package com.example.api.service.impl;import com.example.api.exception.AccountAndPasswordError;
import com.example.api.model.dto.LoginDto;
import com.example.api.model.entity.Admin;
import com.example.api.model.entity.LoginLog;
import com.example.api.repository.AdminRepository;
import com.example.api.repository.LoginLogRepository;
import com.example.api.service.AdminService;
import com.example.api.service.EmailService;
import com.example.api.utils.DataTimeUtil;
import com.example.api.utils.JwtTokenUtil;
import org.springframework.stereotype.Service;import javax.annotation.Resource;
import java.util.Date;
import java.util.List;@Service
public class AdminServiceImpl implements AdminService {@Resourceprivate AdminRepository adminRepository;@Resourceprivate EmailService emailService;@Overridepublic Admin save(Admin admin) throws Exception {if (admin.getEmail().length() < 8 || admin.getPassword().length() < 5) throw new Exception("請求參數異常");admin.setCreateAt(DataTimeUtil.getNowTimeString());return adminRepository.save(admin);}@Overridepublic Admin findById(String id) {return adminRepository.findById(id).orElse(null);}@Overridepublic boolean sendEmail(String email) throws Exception {Admin admin = adminRepository.findAdminByEmail(email);if (admin == null) throw new Exception("不存在的郵箱賬戶");return emailService.sendVerificationCode(email);}@Overridepublic Admin loginByPassword(LoginDto dto) throws Exception {Admin one = adminRepository.findAdminByEmailAndPassword(dto.getEmail(), dto.getPassword());if (one == null) {throw new Exception("郵箱或密碼錯誤");}return one;}@Overridepublic Admin loginByEmail(LoginDto dto) throws Exception {boolean status = emailService.checkVerificationCode(dto.getEmail(), dto.getCode());if (!status) throw new Exception("驗證碼錯誤");return adminRepository.findAdminByEmail(dto.getEmail());}@Overridepublic List<Admin> findAll() {return adminRepository.findAll();}@Overridepublic String createToken(Admin admin, long exp) {String rolesString = admin.getRoles();String[] roles = rolesString != null ? rolesString.split(";") : null;return JwtTokenUtil.createToken(admin.getEmail(), roles, exp);}@Overridepublic void delete(String id) {adminRepository.deleteById(id);}}

五、底部獲取項目源碼(9.9¥帶走)

有問題,或者需要協助調試運行項目的也可以

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38077.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38077.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38077.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

寶塔安裝rabbitMQ實戰

服務器環境說明 阿里云服務器、寶塔、centos7 一、下載erlang 原因&#xff1a;RabbitMQ服務端代碼是使用并發式語言Erlang編寫的&#xff0c;安裝Rabbit MQ的前提是安裝Erlang。 下載地址&#xff1a;http://www.erlang.org/downloads 下載對應的版本&…

山東省著名烈士孫善師孫善帥故居布展喜添新篇

人海信息網山東訊&#xff08;張春兄、馮愛云&#xff09; “……他們以鋼鐵般的意志&#xff0c;堅守共產黨員的使命&#xff0c;他們就是濼口九烈士的孫善師孫善帥兄弟&#xff01;”6月28日&#xff0c;對于山東省著名烈士孫善師孫善帥故居來說&#xff0c;又是一個不平凡的…

LabVIEW電壓電流實時監測系統

開發了一種基于LabVIEW和研華&#xff08;Advantech&#xff09;數據采集卡的電壓電流實時監測系統&#xff0c;通過高效的數據采集和處理&#xff0c;為工業和科研用戶提供高精度、實時的電壓電流監測解決方案。系統采用研華USB-4711A數據采集卡&#xff0c;結合LabVIEW編程環…

AI論文速讀 | 2024[KDD]自適應時空圖神經網絡中圖中獎彩票的預訓練識別

題目&#xff1a;Pre-Training Identification of Graph Winning Tickets in Adaptive Spatial-Temporal Graph Neural Networks 作者&#xff1a;Wenying Duan, Tianxiang Fang, Hong Rao, Xiaoxi He 機構&#xff1a;南昌大學&#xff0c;澳門大學 arXiv網址&#xff1a;h…

Python數據分析-股票分析和可視化(深證指數)

一、內容簡介 股市指數作為衡量股市整體表現的重要工具&#xff0c;不僅反映了市場的即時狀態&#xff0c;也提供了經濟健康狀況的關鍵信號。在全球經濟體系中&#xff0c;股市指數被廣泛用于預測經濟活動&#xff0c;評估投資環境&#xff0c;以及制定財政和貨幣政策。在中國…

IEEE JSTSP綜述:從信號處理領域分析視觸覺傳感器的研究

觸覺傳感器是機器人系統的重要組成部分&#xff0c;雖然與視覺相比觸覺具有較小的感知面積&#xff0c;但卻可以提供機器人與物體交互過程中更加真實的物理信息。 視覺觸覺傳感是一種分辨率高、成本低的觸覺感知技術&#xff0c;被廣泛應用于分類、抓取、操作等領域中。近期&a…

R-CNN和YOLO的各自優缺點

R-CNN&#xff08;包括其改進版本如Faster R-CNN和Mask R-CNN&#xff09;與YOLO&#xff08;You Only Look Once&#xff09;是兩種常用的物體檢測算法&#xff0c;它們各自有不同的優缺點&#xff0c;適用于不同的應用場景和需求。 R-CNN 系列 優點&#xff1a; 高精度&am…

如何跑起來一個前后端項目

后端部署 第一步配置自己的maven 第二步優先導入自己本地jar包當本地沒有在從遠程下載 第三步找到配置文件 第四步成功運行后端部署完畢 前端部署 第一步看看項目node_modules有沒有文件如果有就是已經安裝好了對應的依賴&#xff0c;沒有執行npm install 第二步運行即可

決策樹劃分屬性依據

劃分依據 基尼系數基尼系數的應用信息熵信息增益信息增益的使用信息增益準則的局限性 最近在學習項目的時候經常用到隨機森林&#xff0c;所以對決策樹進行探索學習。 基尼系數 基尼系數用來判斷不確定性或不純度&#xff0c;數值范圍在0~0.5之間&#xff0c;數值越低&#x…

【知識學習】Unity3D中Scriptable Render Pipeline的概念及使用方法示例

Unity3D中的Scriptable Render Pipeline&#xff08;SRP&#xff09;是一種高度可定制的渲染管線框架&#xff0c;允許開發者完全控制渲染流程&#xff0c;以適應不同的渲染需求和硬件平臺。SRP使得開發者可以編寫自己的渲染邏輯&#xff0c;包括攝像機管理、渲染設置、光照處理…

【機器學習】K-means++: 一種改進的聚類算法詳解

&#x1f308;個人主頁: 鑫寶Code &#x1f525;熱門專欄: 閑話雜談&#xff5c; 炫酷HTML | JavaScript基礎 ?&#x1f4ab;個人格言: "如無必要&#xff0c;勿增實體" 文章目錄 K-means: 一種改進的聚類算法詳解引言1. K-means算法回顧1.1 基本概念1.2 局限性…

Java的多彩之旅

Java的多彩之旅&#xff0c;確實是一場技術與創新的盛宴。下面&#xff0c;我們將探索它如何在不同領域展現其魅力和功能&#xff0c;從基礎到前沿&#xff0c;一步步揭開Java的神秘面紗。 基礎開發&#xff1a;清新之源 Java的基礎語法簡潔而嚴謹&#xff0c;是學習之旅的起…

Mongodb的體系結構,語法,底層原理,怎么開發使用,使用場景有哪些?

MongoDB 教材 MongoDB 是一個開源的 NoSQL 數據庫&#xff0c;以其高性能、高可用性和自動擴展性廣受歡迎。本文將詳細介紹 MongoDB 的體系結構、語法、底層原理、開發使用方法及常見使用場景。 目錄 MongoDB 簡介MongoDB 體系結構MongoDB 語法 基本操作高級查詢聚合操作 底…

RDMA建鏈的3次握手和斷鏈的4次揮手流程?

文章目錄 基礎信息建鏈 3次握手斷鏈4次揮手建聯狀態active端passive端 報文結構函數關系其他后記 基礎信息 CM: Communication Management 通信管理 連接管理SIDR: Service ID Resolution Protocol. 作用&#xff1a; enables users of Unreliable Datagram service to locate …

實驗4 圖像空間濾波

1. 實驗目的 ①掌握圖像空間濾波的主要原理與方法&#xff1b; ②掌握圖像邊緣提取的主要原理和方法&#xff1b; ③了解空間濾波在圖像處理和機器學習中的應用。 2. 實驗內容 ①調用 Matlab / Python OpenCV中的函數&#xff0c;實現均值濾波、高斯濾波、中值濾波等。 ②調…

【操作系統期末速成】 EP02 | 學習筆記(基于五道口一只鴨)

文章目錄 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文&#xff1a;??????2.1 考點二&#xff1a;操作系統的功能及接口2.2 考點三&#xff1a;操作系統的發展及分類2.3 考點四&#xff1a;操作系統的運行環境&#xff08;重要&#xff09; 一、前言&#x…

從零開始三天學會微信小程序開發(三)

看到不少入門的小程序開發者不斷的問重復性的問題&#xff0c;我們從實戰角度開發了這個課程&#xff0c;希望能夠幫助大家了解小程序開發。 課程分三天&#xff1a; 第一天&#xff1a;微信小程序開發入門第二天&#xff1a;給小程序接入云端數據第三天&#xff1a;完善我的…

MySQL高級-MVCC- readview介紹

文章目錄 1、介紹2、ReadView中包含了四個核心字段&#xff1a;3、版本鏈數據的訪問規則&#xff1a;4、不同的隔離級別&#xff0c;生成ReadView的時機不同&#xff1a; 1、介紹 ReadView&#xff08;讀視圖&#xff09;是 快照讀 SQL執行時MVCC提取數據的依據&#xff0c;記錄…

【計算機組成原理實驗】——運算器組成實驗

計組TEC4實驗——運算器組成實驗 1. 實驗目的 (1&#xff09;掌握算術邏輯運算加、減、乘、與的工作原理。 (2) 熟悉簡單運算器的數據傳送通路。 (3) 驗證實驗臺運算器的8位加、減、與、直通功能。 (4) 驗證實驗臺的4位乘4位功能。 (5) 按給定數據&#xff0c;完成幾種指…

SerDes介紹以及原語使用介紹(4)ISERDESE2原語仿真

文章目錄 前言一、iserdese2_module模塊二、oserdese2_module模塊三、頂層模塊四、仿真結果分析 前言 上文詳細介紹了ISERDESE2原語的使用&#xff0c;本文根據仿真對ISERDESE2原語的使用進一步加深印象。在仿真時&#xff0c;與OSERDESE進行回環。 一、iserdese2_module模塊…