Java實(shí)戰(zhàn)之超市收銀管理系統(tǒng)的實(shí)現(xiàn)
一、項(xiàng)目簡(jiǎn)述
本系統(tǒng)主要實(shí)現(xiàn)的功能有:收銀、報(bào)表、用戶管理、商品管理、銷售管理、進(jìn)貨退貨管理、倉(cāng)庫(kù)管 理等等功能。
二、項(xiàng)目運(yùn)行
環(huán)境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
項(xiàng)目技術(shù): Spring+ SpringMVC + MyBatis + ThymeLeaf + JavaScript + JQuery + Ajax + maven等等
三、效果圖
四、核心代碼
品類信息控制層
/** * <p> * 前端控制器 * </p> * */ @RestController @RequestMapping("/category") public class CategoryController { @Autowired private CategoryService categoryService; /** * 類別模糊查詢 * @param * @return */ @SysLog("類別查詢操作") @RequestMapping("/categoryList") public DataGridViewResult categoryList(CategoryVO categoryVO) { //創(chuàng)建分頁(yè)信息 參數(shù)1 當(dāng)前頁(yè) 參數(shù)2 每頁(yè)顯示條數(shù) IPage<Category> page = new Page<>(categoryVO.getPage(), categoryVO.getLimit()); QueryWrapper<Category> queryWrapper = new QueryWrapper<>(); queryWrapper.like(!StringUtils.isEmpty(categoryVO.getCatename()),"catename", categoryVO.getCatename()); IPage<Category> categoryIPage = categoryService.page(page, queryWrapper); /** * logsIPage.getTotal() 總條數(shù) * logsIPage.getRecords() 分頁(yè)記錄列表 */ return new DataGridViewResult(categoryIPage.getTotal(),categoryIPage.getRecords()); } /** * 類別批量刪除 * @param ids * @return */ @SysLog("類別刪除操作") @RequestMapping("/deleteList") public Result deleteList(String ids) { //將字符串拆分成數(shù)組 String[] idsStr = ids.split(","); List<String> list = Arrays.asList(idsStr); boolean bool = categoryService.removeByIds(list); if(bool){ return Result.success(true,"200","刪除成功!"); } return Result.error(false,null,"刪除失??!"); } /** * 添加類別信息 * @param category * @return */ @SysLog("類別添加操作") @PostMapping("/addcategory") public Result addCategory(Category category){ boolean bool = categoryService.save(category); if(bool){ return Result.success(true,"200","添加成功!"); } return Result.error(false,null,"添加失??!"); } /** * 修改類別信息 * @param category * @return */ @SysLog("類別修改操作") @PostMapping("/updatecategory") public Result updateCategory(Category category){ boolean bool = categoryService.updateById(category); if(bool){ return Result.success(true,"200","修改成功!"); } return Result.error(false,null,"修改失??!"); } /** * 刪除單條數(shù)據(jù) * @param id * @return */ @SysLog("類別刪除操作") @RequestMapping("/deleteOne") public Result deleteOne(int id) { boolean bool = categoryService.removeById(id); if(bool){ return Result.success(true,"200","刪除成功!"); } return Result.error(false,null,"刪除失敗!"); } }
用戶信息控制層
/** * <p> * 前端控制器 * </p> * */ @RestController @RequestMapping("/customer") public class CustomerController { @Autowired private CustomerService customerService; /** * 客戶模糊查詢 * @param * @return */ @SysLog("客戶查詢操作") @RequestMapping("/customerList") public DataGridViewResult customerList(CustomerVO customerVO) { //創(chuàng)建分頁(yè)信息 參數(shù)1 當(dāng)前頁(yè) 參數(shù)2 每頁(yè)顯示條數(shù) IPage<Customer> page = new Page<>(customerVO.getPage(), customerVO.getLimit()); QueryWrapper<Customer> queryWrapper = new QueryWrapper<>(); queryWrapper.like(!StringUtils.isEmpty(customerVO.getCustvip()),"custvip", customerVO.getCustvip()); IPage<Customer> customerIPage = customerService.page(page, queryWrapper); /** * logsIPage.getTotal() 總條數(shù) * logsIPage.getRecords() 分頁(yè)記錄列表 */ return new DataGridViewResult(customerIPage.getTotal(),customerIPage.getRecords()); } /** * 客戶批量刪除 * @param ids * @return */ @SysLog("客戶刪除操作") @RequestMapping("/deleteList") public Result deleteList(String ids) { //將字符串拆分成數(shù)組 String[] idsStr = ids.split(","); List<String> list = Arrays.asList(idsStr); boolean bool = customerService.removeByIds(list); if(bool){ return Result.success(true,"200","刪除成功!"); } return Result.error(false,null,"刪除失??!"); } /** * 添加客戶信息 * @param customer * @return */ @SysLog("客戶添加操作") @PostMapping("/addcustomer") public Result addCustomer(Customer customer){ String id = RandomStringUtils.randomAlphanumeric(10); customer.setCustvip(id); boolean bool = customerService.save(customer); if(bool){ return Result.success(true,"200","添加成功!"); } return Result.error(false,null,"添加失?。?); } /** * 修改客戶信息 * @param customer * @return */ @SysLog("客戶修改操作") @PostMapping("/updatecustomer") public Result updateCustomer(Customer customer){ boolean bool = customerService.updateById(customer); if(bool){ return Result.success(true,"200","修改成功!"); } return Result.error(false,null,"修改失?。?); } /** * 刪除單條數(shù)據(jù) * @param id * @return */ @SysLog("客戶刪除操作") @RequestMapping("/deleteOne") public Result deleteOne(int id) { boolean bool = customerService.removeById(id); if(bool){ return Result.success(true,"200","刪除成功!"); } return Result.error(false,null,"刪除失敗!"); } /** * * 加載下拉框 * @return */ @RequestMapping("/loadAllCustomer") public DataGridViewResult loadAllCustomer(){ QueryWrapper<Customer> queryWrapper = new QueryWrapper<>(); List<Customer> list = customerService.list(queryWrapper); return new DataGridViewResult(list); } }
商品信息控制層
/** * <p> * 前端控制器 * </p> * */ @RestController @RequestMapping("/goods") public class GoodsController { @Autowired private GoodsService goodsService; @Autowired private ProviderService providerService; @Autowired private CategoryService categoryService; /** * 商品模糊查詢 * * @param * @return */ @SysLog("商品查詢操作") @RequestMapping("/goodsList") public DataGridViewResult goodsList(GoodsVO goodsVO) { //創(chuàng)建分頁(yè)信息 參數(shù)1 當(dāng)前頁(yè) 參數(shù)2 每頁(yè)顯示條數(shù) 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.isEmpty(goodsVO.getGname()), "gname", goodsVO.getGname()); IPage<Goods> goodsIPage = goodsService.page(page, queryWrapper); List<Goods> records = goodsIPage.getRecords(); for (Goods goods : records) { Provider provider = providerService.getById(goods.getProviderid()); if (null != provider) { goods.setProvidername(provider.getProvidername()); } } return new DataGridViewResult(goodsIPage.getTotal(), records); } /** * 添加商品信息 * * @param goods * @return */ @SysLog("商品添加操作") @PostMapping("/addgoods") public Result addGoods(Goods goods) { String id = RandomStringUtils.randomAlphanumeric(8); if (goods.getGoodsimg()!=null&&goods.getGoodsimg().endsWith("_temp")){ String newName = AppFileUtils.renameFile(goods.getGoodsimg()); goods.setGoodsimg(newName); } goods.setGnumbering(id); boolean bool = goodsService.save(goods); if (bool) { return Result.success(true, "200", "添加成功!"); } return Result.error(false, null, "添加失?。?); } /** * 修改商品信息 * * @param goods * @return */ @SysLog("商品修改操作") @PostMapping("/updategoods") public Result updateGoods(Goods goods) { //商品圖片不是默認(rèn)圖片 if (!(goods.getGoodsimg()!=null&&goods.getGoodsimg().equals(Constast.DEFAULT_IMG))){ if (goods.getGoodsimg().endsWith("_temp")){ String newName = AppFileUtils.renameFile(goods.getGoodsimg()); goods.setGoodsimg(newName); //刪除原先的圖片 String oldPath = goodsService.getById(goods.getGid()).getGoodsimg(); AppFileUtils.removeFileByPath(oldPath); } } boolean bool = goodsService.updateById(goods); if (bool) { return Result.success(true, "200", "修改成功!"); } return Result.error(false, null, "修改失?。?); } /** * 刪除單條數(shù)據(jù) * * @param id * @return */ @SysLog("商品刪除操作") @RequestMapping("/deleteOne") public Result deleteOne(int id) { boolean bool = goodsService.removeById(id); if (bool) { return Result.success(true, "200", "刪除成功!"); } return Result.error(false, null, "刪除失??!"); } /** * 根據(jù)id查詢當(dāng)前商品擁有的類別 * * @param id * @return */ @RequestMapping("/initGoodsByCategoryId") public DataGridViewResult initGoodsByCategoryId(int id) { List<Map<String, Object>> mapList = null; try { //查詢所有類別列表 mapList = categoryService.listMaps(); //根據(jù)商品id查詢商品擁有的類別 Set<Integer> cateIdList = categoryService.findGoodsByCategoryId(id); for (Map<String, Object> map : mapList) { //定義標(biāo)記 默認(rèn)不選中 boolean flag = false; int cateId = (int) map.get("cateid"); for (Integer cid : cateIdList) { if (cid == cateId) { flag = true; break; } } map.put("LAY_CHECKED", flag); } } catch (Exception e) { e.printStackTrace(); } return new DataGridViewResult(Long.valueOf(mapList.size()), mapList); } /** * 根據(jù)商品id加載商品信息 * @param goodsid * @return */ @GetMapping("/loadGoodsById") public DataGridViewResult loadGoodsById(int goodsid) { QueryWrapper<Goods> goodsQueryWrapper = new QueryWrapper<>(); goodsQueryWrapper.eq(goodsid != 0, "gid", goodsid); Goods goods = goodsService.getById(goodsid); return new DataGridViewResult(goods); } /** * 為商品分配類別 * * @param categoryids * @param goodsid * @return */ @SysLog("類別添加操作") @RequestMapping("/saveGoodsCategory") public Result saveGoodsCategory(String categoryids, int goodsid) { try { if (goodsService.saveGoodsCategory(goodsid, categoryids)) { return Result.success(true, null, "分配成功"); } } catch (Exception e) { e.printStackTrace(); } return Result.error(false, null, "分配失敗"); } /** * 加載下拉框 * * @return */ @RequestMapping("/loadAllGoods") public DataGridViewResult loadAllGoods() { QueryWrapper<Goods> queryWrapper = new QueryWrapper<>(); List<Goods> list = goodsService.list(queryWrapper); return new DataGridViewResult(list); } /** * 根據(jù)供應(yīng)商查商品下拉框 * * @param providerid * @return */ @RequestMapping("/loadGoodsByProvidreId") public DataGridViewResult loadGoodsByProvidreId(Integer providerid) { QueryWrapper<Goods> goodsQueryWrapper = new QueryWrapper<>(); goodsQueryWrapper.eq(providerid != null, "providerid", providerid); List<Goods> list = goodsService.list(goodsQueryWrapper); for (Goods goods : list) { Provider provider = providerService.getById(goods.getProviderid()); if (null != provider) { goods.setProvidername(provider.getProvidername()); } } return new DataGridViewResult(list); } }
以上就是Java實(shí)戰(zhàn)之超市收銀管理系統(tǒng)的實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Java收銀系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java根據(jù)模板導(dǎo)出Excel報(bào)表并復(fù)制模板生成多個(gè)Sheet頁(yè)
本文主要介紹了Java根據(jù)模板導(dǎo)出Excel報(bào)表并復(fù)制模板生成多個(gè)Sheet頁(yè)的方法,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03一篇文章告訴你JAVA Mybatis框架的核心原理到底有多重要
yBatis的底層操作封裝了JDBC的API,MyBatis的工作原理以及核心流程與JDBC的使用步驟一脈相承,MyBatis的核心對(duì)象(SqlSession,Executor)與JDBC的核心對(duì)象(Connection,Statement)相互對(duì)應(yīng)2021-06-06Spring Boot整合Spring Data JPA過(guò)程解析
這篇文章主要介紹了Spring Boot整合Spring Data JPA過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10Java System.getProperty()-獲取系統(tǒng)參數(shù)案例詳解
這篇文章主要介紹了Java System.getProperty()-獲取系統(tǒng)參數(shù)案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08Java使用正則表達(dá)式驗(yàn)證手機(jī)號(hào)和電話號(hào)碼的方法
今天小編就為大家分享一篇關(guān)于Java使用正則表達(dá)式驗(yàn)證手機(jī)號(hào)和電話號(hào)碼的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12