最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

基于Springboot實(shí)現(xiàn)商品進(jìn)銷(xiāo)存管理系統(tǒng)

2022-08-02 19:48 作者:指南針畢業(yè)設(shè)計(jì)  | 我要投稿

項(xiàng)目編號(hào):BS-XX-127

一,項(xiàng)目簡(jiǎn)介

本項(xiàng)目實(shí)現(xiàn)了基于springboot的進(jìn)銷(xiāo)存管理系統(tǒng),主要用戶(hù)開(kāi)設(shè)網(wǎng)店的相關(guān)商品的進(jìn)貨、銷(xiāo)售、庫(kù)存的管理,功能比較完整,有著完備的權(quán)限管理系統(tǒng),可以自行根據(jù)需要來(lái)設(shè)計(jì)角色和分配權(quán)限,權(quán)限的粒度可以做到頁(yè)面級(jí)的權(quán)限控制,整個(gè)項(xiàng)目來(lái)講比較優(yōu)秀。主要實(shí)現(xiàn)的功能有如下幾個(gè)模塊:


  1. 基礎(chǔ)管理模塊:包含客戶(hù)管理、供應(yīng)商管理、商品管理三個(gè)子模塊


  2. 進(jìn)貨管理模塊:包含商品進(jìn)貨、退貨、商品退貨查詢(xún)幾個(gè)子查塊


  3. 銷(xiāo)售管理:包含商品銷(xiāo)售、退貨、銷(xiāo)售退貨查詢(xún)幾個(gè)子查塊


  4. 系統(tǒng)管理:包含部門(mén)管理、菜單管理、權(quán)限管理、角色管理、用戶(hù)管理五個(gè)子模塊


  5. 其它管理:包含登陸日志查詢(xún)、系統(tǒng)公告管理、圖標(biāo)管理等幾個(gè)子模塊


  6. 個(gè)人中心:包含個(gè)人資料管理、密碼修改等相關(guān)功能



二,環(huán)境介紹

語(yǔ)言環(huán)境:Java:? jdk1.8

數(shù)據(jù)庫(kù):Mysql: mysql5.7? /? Redis緩存數(shù)據(jù)庫(kù)

應(yīng)用服務(wù)器:Tomcat:? tomcat8.5.31

開(kāi)發(fā)工具:IDEA或eclipse

后臺(tái)開(kāi)發(fā)技術(shù):Springboot+Mybatis-plus+Shiro

前端開(kāi)發(fā)技術(shù):Bootstrap+Layui+Freemarker模板


三,系統(tǒng)展示

超級(jí)管理員登陸系統(tǒng):system/123456

編輯

基礎(chǔ)管理—客戶(hù)管理

編輯


基礎(chǔ)管理—供應(yīng)商管理

編輯


基礎(chǔ)管理—商品管理

編輯


進(jìn)貨管理—商品進(jìn)貨?? 也可在此實(shí)現(xiàn)退貨

編輯

進(jìn)貨管理—商品退貨查詢(xún)

編輯


銷(xiāo)售管理—商品銷(xiāo)售

編輯


銷(xiāo)售管理—銷(xiāo)售退貨查詢(xún)

編輯

系統(tǒng)管理---部門(mén)管理

編輯

系統(tǒng)管理---菜單管理

編輯

系統(tǒng)管理---權(quán)限管理

編輯

系統(tǒng)管理---角色管理

編輯

系統(tǒng)管理---用戶(hù)管理


編輯

其它管理—登陸日志

編輯


其它管理—系統(tǒng)公告

編輯


四,核心代碼展示

package com.dev.shop.bus.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("bus")public class BusinessController { ? ?/** ? ? * 跳轉(zhuǎn)到客戶(hù)管理頁(yè)面 ? ? * @return ? ? */ ? ?@RequestMapping("toCustomerManager") ? ?public String toCustomerManager(){ ? ? ? ?return "business/customer/customerManager"; ? ?} ? ?/** ? ? * 跳轉(zhuǎn)到供應(yīng)商管理頁(yè)面 ? ? * @return ? ? */ ? ?@RequestMapping("toProviderManager") ? ?public String toProviderManager(){ ? ? ? ?return "business/provider/providerManager"; ? ?} ? ?/** ? ? * 跳轉(zhuǎn)到商品管理頁(yè)面 ? ? * @return ? ? */ ? ?@RequestMapping("toGoodsManager") ? ?public String toGoodsManager(){ ? ? ? ?return "business/goods/goodsManager"; ? ?} ? ?/** ? ? * 跳轉(zhuǎn)到進(jìn)貨管理頁(yè)面 ? ? * @return ? ? */ ? ?@RequestMapping("toInportManager") ? ?public String toInportManager(){ ? ? ? ?return "business/inport/inportManager"; ? ?} ? ?/** ? ? * 跳轉(zhuǎn)到退貨管理頁(yè)面 ? ? * @return ? ? */ ? ?@RequestMapping("toOutportManager") ? ?public String toOutportManager(){ ? ? ? ?return "business/outport/outportManager"; ? ?} ? ?/** ? ? * 跳轉(zhuǎn)到商品銷(xiāo)售管理頁(yè)面 ? ? * @return ? ? */ ? ?@RequestMapping("toSalesManager") ? ?public String toSalesManager(){ ? ? ? ?return "business/sales/salesManager"; ? ?} ? ?/** ? ? * 跳轉(zhuǎn)到商品銷(xiāo)售管理頁(yè)面 ? ? * @return ? ? */ ? ?@RequestMapping("toSalesbackManager") ? ?public String toSalesbackManager(){ ? ? ? ?return "business/salesback/salesbackManager"; ? ?} }

package com.dev.shop.bus.controller;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.dev.shop.bus.entity.Customer;import com.dev.shop.bus.service.ICustomerService;import com.dev.shop.bus.vo.CustomerVo;import com.dev.shop.sys.common.Constast;import com.dev.shop.sys.common.DataGridView;import com.dev.shop.sys.common.ResultObj;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.io.Serializable;import java.util.ArrayList;import java.util.Collection;import java.util.List;@RestController@RequestMapping("/customer")public class CustomerController { ? ?@Autowired ? ?private ICustomerService customerService; ? ?/** ? ? * 查詢(xún)所有的客戶(hù) ? ? * @param customerVo ? ? * @return ? ? */ ? ?@RequestMapping("loadAllCustomer") ? ?public DataGridView loadAllCustomer(CustomerVo customerVo){ ? ? ? ?//1.聲明一個(gè)分頁(yè)page對(duì)象 ? ? ? ?IPage<Customer> page = new Page(customerVo.getPage(),customerVo.getLimit()); ? ? ? ?//2.聲明一個(gè)queryWrapper ? ? ? ?QueryWrapper<Customer> queryWrapper = new QueryWrapper(); ? ? ? ?queryWrapper.like(StringUtils.isNotBlank(customerVo.getCustomername()),"customername",customerVo.getCustomername()); ? ? ? ?queryWrapper.like(StringUtils.isNotBlank(customerVo.getConnectionpersion()),"connectionpersion",customerVo.getConnectionpersion()); ? ? ? ?queryWrapper.like(StringUtils.isNotBlank(customerVo.getPhone()),"phone",customerVo.getPhone()); ? ? ? ?customerService.page(page,queryWrapper); ? ? ? ?return new DataGridView(page.getTotal(),page.getRecords()); ? ?} ? ?/** ? ? * 添加一個(gè)客戶(hù) ? ? * @param customerVo ? ? * @return ? ? */ ? ?@RequestMapping("addCustomer") ? ?public ResultObj addCustomer(CustomerVo customerVo){ ? ? ? ?try { ? ? ? ? ? ?customerService.save(customerVo); ? ? ? ? ? ?return ResultObj.ADD_SUCCESS; ? ? ? ?} catch (Exception e) { ? ? ? ? ? ?e.printStackTrace(); ? ? ? ? ? ?return ResultObj.ADD_ERROR; ? ? ? ?} ? ?} ? ?/** ? ? * 修改一個(gè)客戶(hù) ? ? * @param customerVo ? ? * @return ? ? */ ? ?@RequestMapping("updateCustomer") ? ?public ResultObj updateCustomer(CustomerVo customerVo){ ? ? ? ?try { ? ? ? ? ? ?customerService.updateById(customerVo); ? ? ? ? ? ?return ResultObj.UPDATE_SUCCESS; ? ? ? ?} catch (Exception e) { ? ? ? ? ? ?e.printStackTrace(); ? ? ? ? ? ?return ResultObj.UPDATE_ERROR; ? ? ? ?} ? ?} ? ?/** ? ? * 刪除一個(gè)客戶(hù) ? ? * @param id 客戶(hù)的ID ? ? * @return ? ? */ ? ?@RequestMapping("deleteCustomer") ? ?public ResultObj deleteCustomer(Integer id){ ? ? ? ?try { ? ? ? ? ? ?customerService.removeById(id); ? ? ? ? ? ?return ResultObj.DELETE_SUCCESS; ? ? ? ?} catch (Exception e) { ? ? ? ? ? ?e.printStackTrace(); ? ? ? ? ? ?return ResultObj.DELETE_ERROR; ? ? ? ?} ? ?} ? ?/** ? ? * 批量刪除客戶(hù) ? ? * @param customerVo 選中的客戶(hù) ? ? * @return ? ? */ ? ?@RequestMapping("batchDeleteCustomer") ? ?public ResultObj batchDeleteCustomer(CustomerVo customerVo){ ? ? ? ?try { ? ? ? ? ? ?Collection<Serializable> idList = new ArrayList<Serializable>(); ? ? ? ? ? ?for (Integer id : customerVo.getIds()) { ? ? ? ? ? ? ? ?idList.add(id); ? ? ? ? ? ?} ? ? ? ? ? ?customerService.removeByIds(idList); ? ? ? ? ? ?return ResultObj.DELETE_SUCCESS; ? ? ? ?} catch (Exception e) { ? ? ? ? ? ?e.printStackTrace(); ? ? ? ? ? ?return ResultObj.DELETE_ERROR; ? ? ? ?} ? ?} ? ?/** ? ? * 加載所有客戶(hù)的下拉列表 ? ? * @return ? ? */ ? ?@RequestMapping("loadAllCustomerForSelect") ? ?public DataGridView loadAllCustomerForSelect(){ ? ? ? ?QueryWrapper<Customer> queryWrapper = new QueryWrapper<Customer>(); ? ? ? ?queryWrapper.eq("available", Constast.AVAILABLE_TRUE); ? ? ? ?List<Customer> list = customerService.list(queryWrapper); ? ? ? ?return new DataGridView(list); ? ?} }


package com.dev.shop.bus.controller;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.baomidou.mybatisplus.core.metadata.IPage;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.dev.shop.bus.entity.Goods;import com.dev.shop.bus.entity.Provider;import com.dev.shop.bus.service.IGoodsService;import com.dev.shop.bus.service.IProviderService;import com.dev.shop.bus.vo.GoodsVo;import com.dev.shop.sys.common.AppFileUtils;import com.dev.shop.sys.common.Constast;import com.dev.shop.sys.common.DataGridView;import com.dev.shop.sys.common.ResultObj;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController@RequestMapping("/goods")public class GoodsController { ? ?@Autowired ? ?private IGoodsService goodsService; ? ?@Autowired ? ?private IProviderService providerService; ? ?/** ? ? * 查詢(xún)商品 ? ? * @param goodsVo ? ? * @return ? ? */ ? ?@RequestMapping("loadAllGoods") ? ?public DataGridView loadAllGoods(GoodsVo goodsVo){ ? ? ? ?IPage<Goods> page = new Page<>(goodsVo.getPage(),goodsVo.getLimit()); ? ? ? ?QueryWrapper<Goods> queryWrapper = new QueryWrapper(); ? ? ? ?queryWrapper.eq(goodsVo.getProviderid()!=null&&goodsVo.getProviderid()!=0,"providerid",goodsVo.getProviderid()); ? ? ? ?queryWrapper.like(StringUtils.isNotBlank(goodsVo.getGoodsname()),"goodsname",goodsVo.getGoodsname()); ? ? ? ?queryWrapper.like(StringUtils.isNotBlank(goodsVo.getProductcode()),"productcode",goodsVo.getProductcode()); ? ? ? ?queryWrapper.like(StringUtils.isNotBlank(goodsVo.getPromitcode()),"promitcode",goodsVo.getPromitcode()); ? ? ? ?queryWrapper.like(StringUtils.isNotBlank(goodsVo.getDescription()),"description",goodsVo.getDescription()); ? ? ? ?queryWrapper.like(StringUtils.isNotBlank(goodsVo.getSize()),"size",goodsVo.getSize()); ? ? ? ?queryWrapper.orderByDesc("id"); ? ? ? ?goodsService.page(page,queryWrapper); ? ? ? ?List<Goods> records = page.getRecords(); ? ? ? ?for (Goods goods : records) { ? ? ? ? ? ?Provider provider = providerService.getById(goods.getProviderid()); ? ? ? ? ? ?if (null!=provider){ ? ? ? ? ? ? ? ?goods.setProvidername(provider.getProvidername()); ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?return new DataGridView(page.getTotal(),page.getRecords()); ? ?} ? ?/** ? ? * 添加商品 ? ? * @param goodsVo ? ? * @return ? ? */ ? ?@RequestMapping("addGoods") ? ?public ResultObj addGoods(GoodsVo goodsVo){ ? ? ? ?try { ? ? ? ? ? ?if (goodsVo.getGoodsimg()!=null&&goodsVo.getGoodsimg().endsWith("_temp")){ ? ? ? ? ? ? ? ?String newName = AppFileUtils.renameFile(goodsVo.getGoodsimg()); ? ? ? ? ? ? ? ?goodsVo.setGoodsimg(newName); ? ? ? ? ? ?} ? ? ? ? ? ?goodsService.save(goodsVo); ? ? ? ? ? ?return ResultObj.ADD_SUCCESS; ? ? ? ?} catch (Exception e) { ? ? ? ? ? ?e.printStackTrace(); ? ? ? ? ? ?return ResultObj.ADD_ERROR; ? ? ? ?} ? ?} ? ?/** ? ? * 修改商品 ? ? * @param goodsVo ? ? * @return ? ? */ ? ?@RequestMapping("updateGoods") ? ?public ResultObj updateGoods(GoodsVo goodsVo){ ? ? ? ?try { ? ? ? ? ? ?//商品圖片不是默認(rèn)圖片 ? ? ? ? ? ?if (!(goodsVo.getGoodsimg()!=null&&goodsVo.getGoodsimg().equals(Constast.DEFAULT_IMG))){ ? ? ? ? ? ? ? ?if (goodsVo.getGoodsimg().endsWith("_temp")){ ? ? ? ? ? ? ? ? ? ?String newName = AppFileUtils.renameFile(goodsVo.getGoodsimg()); ? ? ? ? ? ? ? ? ? ?goodsVo.setGoodsimg(newName); ? ? ? ? ? ? ? ? ? ?//刪除原先的圖片 ? ? ? ? ? ? ? ? ? ?String oldPath = goodsService.getById(goodsVo.getId()).getGoodsimg(); ? ? ? ? ? ? ? ? ? ?AppFileUtils.removeFileByPath(oldPath); ? ? ? ? ? ? ? ?} ? ? ? ? ? ?} ? ? ? ? ? ?goodsService.updateById(goodsVo); ? ? ? ? ? ?return ResultObj.UPDATE_SUCCESS; ? ? ? ?} catch (Exception e) { ? ? ? ? ? ?e.printStackTrace(); ? ? ? ? ? ?return ResultObj.UPDATE_ERROR; ? ? ? ?} ? ?} ? ?/** ? ? * 刪除商品 ? ? * @param id ? ? * @return ? ? */ ? ?@RequestMapping("deleteGoods") ? ?public ResultObj deleteGoods(Integer id,String goodsimg){ ? ? ? ?try { ? ? ? ? ? ?//刪除商品的圖片 ? ? ? ? ? ?AppFileUtils.removeFileByPath(goodsimg); ? ? ? ? ? ?goodsService.removeById(id); ? ? ? ? ? ?return ResultObj.DELETE_SUCCESS; ? ? ? ?} catch (Exception e) { ? ? ? ? ? ?e.printStackTrace(); ? ? ? ? ? ?return ResultObj.DELETE_ERROR; ? ? ? ?} ? ?} ? ?/** ? ? * 加載所有可用的商品 ? ? * @return ? ? */ ? ?@RequestMapping("loadAllGoodsForSelect") ? ?public DataGridView loadAllGoodsForSelect(){ ? ? ? ?QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>(); ? ? ? ?queryWrapper.eq("available",Constast.AVAILABLE_TRUE); ? ? ? ?List<Goods> list = goodsService.list(queryWrapper); ? ? ? ?for (Goods goods : list) { ? ? ? ? ? ?Provider provider = providerService.getById(goods.getProviderid()); ? ? ? ? ? ?if (null!=provider){ ? ? ? ? ? ? ? ?goods.setProvidername(provider.getProvidername()); ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?return new DataGridView(list); ? ?} ? ?/** ? ? * 根據(jù)供應(yīng)商ID查詢(xún)商品信息 ? ? * @param providerid ? ?供應(yīng)商ID ? ? * @return ? ? */ ? ?@RequestMapping("loadGoodsByProviderId") ? ?public DataGridView loadGoodsByProviderId(Integer providerid){ ? ? ? ?QueryWrapper<Goods> queryWrapper = new QueryWrapper<Goods>(); ? ? ? ?queryWrapper.eq("available",Constast.AVAILABLE_TRUE); ? ? ? ?queryWrapper.eq(providerid!=null,"providerid",providerid); ? ? ? ?List<Goods> list = goodsService.list(queryWrapper); ? ? ? ?for (Goods goods : list) { ? ? ? ? ? ?Provider provider = providerService.getById(goods.getProviderid()); ? ? ? ? ? ?if (null!=provider){ ? ? ? ? ? ? ? ?goods.setProvidername(provider.getProvidername()); ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?return new DataGridView(list); ? ?} }


package com.dev.shop.bus.entity;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableId;import com.baomidou.mybatisplus.annotation.TableName;import lombok.Data;import lombok.EqualsAndHashCode;import lombok.ToString;import lombok.experimental.Accessors;import java.io.Serializable;@Data@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)@TableName("bus_customer")@ToStringpublic class Customer implements Serializable { ? ?private static final long serialVersionUID=1L; ? ?@TableId(value = "id", type = IdType.AUTO) ? ?private Integer id; ? ?private String customername; ? ?private String zip; ? ?private String address; ? ?private String telephone; ? ?private String connectionpersion; ? ?private String phone; ? ?private String bank; ? ?private String account; ? ?private String email; ? ?private String fax; ? ?private Integer available; }

五,項(xiàng)目總結(jié)

???? 以上展示了基于Springboot實(shí)現(xiàn)商品進(jìn)銷(xiāo)存管理系統(tǒng)的功能模塊、所用技術(shù)、界面展示以及部分代碼,系統(tǒng)整體設(shè)計(jì)的結(jié)構(gòu)比較清晰,功能 也相對(duì)完整,比較適合做畢業(yè)設(shè)計(jì)或課程設(shè)計(jì)使用。


基于Springboot實(shí)現(xiàn)商品進(jìn)銷(xiāo)存管理系統(tǒng)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
美姑县| 拜泉县| 武威市| 嘉禾县| 梁平县| 班戈县| 隆子县| 南木林县| 平山县| 玉林市| 枝江市| 郴州市| 浑源县| 凤山市| 西贡区| 子长县| 镇坪县| 理塘县| 尚志市| 漳州市| 禄丰县| 珠海市| 东台市| 将乐县| 商城县| 灵丘县| 县级市| 平顶山市| 阿荣旗| 陆良县| 孝感市| 张家口市| 江油市| 庆安县| 固阳县| 永州市| 安庆市| 准格尔旗| 云安县| 东乌| 广饶县|