写点什么

Java 毕设项目——超市 POS 收银管理系统 (java+SSM+Maven+Mysql+Jsp)

作者:Java-fenn
  • 2022 年 9 月 14 日
    湖南
  • 本文字数:4874 字

    阅读完需:约 16 分钟

Java 毕设项目——超市 POS 收银管理系统(java+SSM+Maven+Mysql+Jsp)

时间 2022-09-13 09:13:21  CSDN

原文  https://blog.csdn.net/m0_一、前言介绍

超市 POS 收银管理的需求和管理上的不断提升,超市 POS 收银管理的潜力将无限扩大,超市 POS 收银管理系统在业界被广泛关注,本网站及对此进行总体分析,将超市 POS 收银管理信息管理的发展提供参考。超市 POS 收银管理系统对超市 POS 收银管理有着明显的带动效应,尤其对管理员的管理帮助更大。

本系统主要包括管理员和员工;主要包括:主页、个人中心、员工管理、供应商信息管理、商品分类管理、商品信息管理、商品入库管理、商品出库管理、商品采购管理、商品退货管理、系统管理等功能的管理系统。

二、功能分析

考虑到实际生活中在超市 POS 收银管理方面的需要以及对该系统认真的分析,将系统权限按管理员和员工这两类涉及用户划分。

(1)管理员功能需求

管理员登陆后,主要模块包括主页、个人中心、员工管理、供应商信息管理、商品分类管理、商品信息管理、商品入库管理、商品出库管理、商品采购管理、商品退货管理、系统管理等功能。管理员用例图如图


(2)员工功能需求

员工登陆后,主要模块包括主页、个人中心、供应商信息管理、商品信息管理、商品入库管理、商品出库管理、商品采购管理、商品退货管理、系统管理等功能。员工用例图如图


2.1 功能结构

为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该超市 POS 收银管理系统的功能结构图如下所示:



三、系统功能实现

登录,管理员和员工通过输入用户名,密码,选择角色信息,点击登录进入系统操作进行操作,如图


管理员功能模块

管理员登陆系统后,可以查看主页、个人中心、员工管理、供应商信息管理、商品分类管理、商品信息管理、商品入库管理、商品出库管理、商品采购管理、商品退货管理、系统管理等功能,还能对每个功能逐一进行相应操作,如图


员工管理

在员工管理页面可以对员工工号、员工姓名、性别、身份证、联系电话、头像等内容进行查看,修改或删除等操作,如图


供应商信息管理

在供应商信息管理页面可以对供应商编号、供应商品名称、供应商类型、供应商地址、联系人、联系电话等内容进行查看,修改或删除等操作,如图


商品信息管理

在商品信息管理页面可以对商品编号、商品名称、商品分类、图片、数量、规格、品牌、进价、售价、保质期、生产日期等内容进行查看,修改或删除等操作,如图


商品入库管理

在商品入库管理页面可以对入库单号、商品编号、商品名称、商品分类、品牌、规格、数量、进价、总金额、登记日期、员工工号、员工姓名等内容进行查看,修改或删除等操作,如图


商品出库管理

在商品出库管理页面可以对出库单号、商品编号、商品名称、商品分类、品牌、规格、数量、进价、总金额、登记日期、员工工号、员工姓名等内容进行查看,修改或删除等操作,如图


商品采购管理

在商品采购管理页面可以对采购编号、供应商编号、供应商名称、商品编号、商品名称、品牌、规格、数量、采购价格、采购金额、采购日期、员工工号、员工姓名等内容进行查看,修改或删除等操作,如图


商品退货管理

在商品退货管理页面可以对采购编号、供应商编号、供应商名称、商品编号、商品名称、品牌、规格、数量、采购价格、退货时间、员工工号、员工姓名等内容进行查看,修改或删除等操作,如图


系统管理

在公告信息管理页面可以对标题、简介、图片等内容进行查看,修改或删除等操作,如图


员工功能模块

员工登陆系统后,可以查看主页、个人中心、供应商信息管理、商品信息管理、商品入库管理、商品出库管理、商品采购管理、商品退货管理、系统管理等功能,还能对每个功能逐一进行相应操作,如图


个人中心

在个人中心页面通过填写员工工号、员工姓名、性别、身份证、联系电话、头像等内容并提交或进行个人信息修改操作,如图


供应商信息管理

在供应商信息管理页面可以对供应商编号、供应商品名称、供应商类型、供应商地址、联系人、联系电话等内容进行查看操作,如图


商品信息管理

在商品信息管理页面可以对商品编号、商品名称、商品分类、图片、数量、规格、品牌、进价、售价、保质期、生产日期等内容进行查看,入库,出库等操作,如图


四、部分核心代码

商品采购

/** * 商品采购 * 后端接口 * @author  * @email  * @date 2022-04-25 18:09:26 */@RestController@RequestMapping("/shangpincaigou")public class ShangpincaigouController {    @Autowired    private ShangpincaigouService shangpincaigouService;




/** * 后端列表 */ @RequestMapping("/page") public R page(@RequestParam Map<String, Object> params,ShangpincaigouEntity shangpincaigou, HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString(); if(tableName.equals("yuangong")) { shangpincaigou.setYuangonggonghao((String)request.getSession().getAttribute("username")); } EntityWrapper<ShangpincaigouEntity> ew = new EntityWrapper<ShangpincaigouEntity>(); PageUtils page = shangpincaigouService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shangpincaigou), params), params)); request.setAttribute("data", page); return R.ok().put("data", page); } /** * 前端列表 */ @IgnoreAuth @RequestMapping("/list") public R list(@RequestParam Map<String, Object> params,ShangpincaigouEntity shangpincaigou, HttpServletRequest request){ EntityWrapper<ShangpincaigouEntity> ew = new EntityWrapper<ShangpincaigouEntity>(); PageUtils page = shangpincaigouService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shangpincaigou), params), params)); request.setAttribute("data", page); return R.ok().put("data", page); }
/** * 列表 */ @RequestMapping("/lists") public R list( ShangpincaigouEntity shangpincaigou){ EntityWrapper<ShangpincaigouEntity> ew = new EntityWrapper<ShangpincaigouEntity>(); ew.allEq(MPUtil.allEQMapPre( shangpincaigou, "shangpincaigou")); return R.ok().put("data", shangpincaigouService.selectListView(ew)); }
/** * 查询 */ @RequestMapping("/query") public R query(ShangpincaigouEntity shangpincaigou){ EntityWrapper< ShangpincaigouEntity> ew = new EntityWrapper< ShangpincaigouEntity>(); ew.allEq(MPUtil.allEQMapPre( shangpincaigou, "shangpincaigou")); ShangpincaigouView shangpincaigouView = shangpincaigouService.selectView(ew); return R.ok("查询商品采购成功").put("data", shangpincaigouView); } /** * 后端详情 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ ShangpincaigouEntity shangpincaigou = shangpincaigouService.selectById(id); return R.ok().put("data", shangpincaigou); }
/** * 前端详情 */ @IgnoreAuth @RequestMapping("/detail/{id}") public R detail(@PathVariable("id") Long id){ ShangpincaigouEntity shangpincaigou = shangpincaigouService.selectById(id); return R.ok().put("data", shangpincaigou); }


/** * 后端保存 */ @RequestMapping("/save") public R save(@RequestBody ShangpincaigouEntity shangpincaigou, HttpServletRequest request){ shangpincaigou.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(shangpincaigou);
shangpincaigouService.insert(shangpincaigou); return R.ok(); } /** * 前端保存 */ @RequestMapping("/add") public R add(@RequestBody ShangpincaigouEntity shangpincaigou, HttpServletRequest request){ shangpincaigou.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(shangpincaigou);
shangpincaigouService.insert(shangpincaigou); return R.ok(); }
/** * 修改 */ @RequestMapping("/update") @Transactional public R update(@RequestBody ShangpincaigouEntity shangpincaigou, HttpServletRequest request){ //ValidatorUtils.validateEntity(shangpincaigou); shangpincaigouService.updateById(shangpincaigou);//全部更新 return R.ok(); }
/** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ shangpincaigouService.deleteBatchIds(Arrays.asList(ids)); return R.ok(); } /** * 提醒接口 */ @RequestMapping("/remind/{columnName}/{type}") public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) { map.put("column", columnName); map.put("type", type); if(type.equals("2")) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); Date remindStartDate = null; Date remindEndDate = null; if(map.get("remindstart")!=null) { Integer remindStart = Integer.parseInt(map.get("remindstart").toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart); remindStartDate = c.getTime(); map.put("remindstart", sdf.format(remindStartDate)); } if(map.get("remindend")!=null) { Integer remindEnd = Integer.parseInt(map.get("remindend").toString()); c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindEnd); remindEndDate = c.getTime(); map.put("remindend", sdf.format(remindEndDate)); } } Wrapper<ShangpincaigouEntity> wrapper = new EntityWrapper<ShangpincaigouEntity>(); if(map.get("remindstart")!=null) { wrapper.ge(columnName, map.get("remindstart")); } if(map.get("remindend")!=null) { wrapper.le(columnName, map.get("remindend")); }
String tableName = request.getSession().getAttribute("tableName").toString(); if(tableName.equals("yuangong")) { wrapper.eq("yuangonggonghao", (String)request.getSession().getAttribute("username")); }
int count = shangpincaigouService.selectCount(wrapper); return R.ok().put("count", count); }




}
复制代码

员工登录

@IgnoreAuth	@RequestMapping(value = "/login")	public R login(String username, String password, String captcha, HttpServletRequest request) {		YuangongEntity user = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("yuangonggonghao", username));		if(user==null || !user.getMima().equals(password)) {			return R.error("账号或密码不正确");		}		String token = tokenService.generateToken(user.getId(), username,"yuangong",  "员工" );		return R.ok().put("token", token);	}
复制代码


用户头像

Java-fenn

关注

需要Java资料或者咨询可加我v : Jimbye 2022.08.16 加入

还未添加个人简介

评论

发布
暂无评论
Java毕设项目——超市POS收银管理系统(java+SSM+Maven+Mysql+Jsp)_Java_Java-fenn_InfoQ写作社区