当前位置: 首页 > article >正文

基于springboot的物品回收系统

项目描述

临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里,你想解决的问题,今天给在家介绍一篇基于springboot的物品回收系统。

需求目标

该系统也具有重要的设计目标有如下几个:
(1)数据共享
推进物品回收的数据校验和数据共享规范化和制度化建设,对物品回收系统数据查询的精度和效率进行提升。
(2)实现物品回收功能模块
系统主要实现了用户管理、物品回收各种配置信息管理、单据草稿管理、销量排行查看、收支统计明细信息等功能模块。
(3)实行现代化的管理手段
该系统应该有清晰的界面,容易操作;对于不同系统的用户,对应的操作权限应该不同,系统应该有一个备份的数据库和功能的恢复系统,目的是为了提高数据的安全性。该系统为基于网络的系统,仅要一台有网络连接的设备就可实现登录系统进行物品回收操作管理。

系统功能模块框架图

在这里插入图片描述
废品回收流程

部分效果图

登录界面:

在这里插入图片描述

系统首页
在这里插入图片描述

客户列表管理
在这里插入图片描述

物品种类管理

在这里插入图片描述
在这里插入图片描述

物品称重管理
在这里插入图片描述
在这里插入图片描述

回收订单管理
在这里插入图片描述

销量排行界面
在这里插入图片描述

数据库设计

系统中用到了12张表,针对每个表都进行了设计,下面对部分核心表进行汇总罗列展示。
(1)用户信息表
在这里插入图片描述

(2)客户信息表
在这里插入图片描述

(3)等级折扣表
在这里插入图片描述

(4)物品类型表
在这里插入图片描述
(5)回收单据表
在这里插入图片描述

部分代码

	// 分页查询所有订单数据
	@RequestMapping("/selectOrderAll")
	@ResponseBody
	public Map<String, Object> selectAll(@RequestParam(name = "rows", required = false) Integer rows,
			@RequestParam(name = "page", required = false) Integer page,
			@RequestParam(name = "cusname", required = false) String cusname,
			@RequestParam(name = "productname", required = false) String productname,
			@RequestParam(name = "bigindatetime", required = false) String bigindatetime,
			@RequestParam(name = "lastdatetime", required = false) String lastdatetime) throws ParseException {
		CustomerAndOrder cao =new  CustomerAndOrder();
		cao.setName(cusname);
		cao.setProductname(productname);
		SimpleDateFormat sdf =   new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
		SimpleDateFormat sdf2 =   new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		if(bigindatetime!=null){
			Date str = sdf.parse(String.valueOf(bigindatetime));
			
			cao.setBigindatetime(sdf2.format(str));
		}
		if(lastdatetime!=null){
			Date str2 = sdf.parse(String.valueOf(lastdatetime));
			cao.setLastdatetime(sdf2.format(str2));
		}
		if (null == rows) {
			rows = 10;
		}
		if (null == page) {
			page = 1;
		}
		PageInfo<TOrderAndCusAndPro> pagelist = orderService.selectAll(page, rows,cao);
		Map<String, Object> resultMap = new HashMap<String, Object>();
		resultMap.put("total", pagelist.getTotal());
		resultMap.put("rows", pagelist.getList());
		return resultMap;
	}
	
	
      // 分页查询数据
	@RequestMapping("/selectproductsum")
	@ResponseBody
	public Map<String, Object> selectproductsum(@RequestParam(name = "rows", required = false) Integer rows,
			@RequestParam(name = "page", required = false) Integer page,
			@RequestParam(name = "type", required = false) String type) throws ParseException {
		if (null == rows) {
			rows = 10;
		}
		if (null == page) {
			page = 1;
		}
		PageInfo<CustomerAndSum> pagelist=null;
		if(type==null||type.equals("")){
			 pagelist = orderService.selectProductSum(page, rows);
		}else if(type.equals("年")){
			 pagelist = orderService.selectProductSum(page, rows);
		}else if(type.equals("月")){
			 pagelist = orderService.selectProductSumM(page, rows);
		}else if(type.equals("周")){
			pagelist = orderService.selectProductSumW(page, rows);
		}else if(type.equals("日")){
			pagelist = orderService.selectProductSumD(page, rows);
		}
		
		Map<String, Object> resultMap = new HashMap<String, Object>();
		resultMap.put("total", pagelist.getTotal());
		resultMap.put("rows", pagelist.getList());
		return resultMap;
	}

	@RequestMapping("/orderAdd")
	public Object customerAdd() {
		return "orderAddView";
	}

	@RequestMapping("/getCus")
	@ResponseBody
	public JsonResult getCus() {
		JsonResult result = new JsonResult();
		List<Customer> list = customerService.selectAllList();
		JSONArray jsonArray = new JSONArray(list);
		result.setData(jsonArray.toString());
		result.success();
		return result;
	}

	@RequestMapping("/getProd")
	@ResponseBody
	public JsonResult getProd() {
		JsonResult result = new JsonResult();
		List<Product> list = prodService.selectAllList();
		JSONArray jsonArray = new JSONArray(list);
		result.setData(jsonArray.toString());
		result.success();
		return result;
	}

	@RequestMapping("/getProdById")
	@ResponseBody
	public JsonResult getProdById(@RequestParam(name = "prodname", required = false) String prodname,
			@RequestParam(name = "maozhong", required = false) String maozhong,
			@RequestParam(name = "pizhong", required = false) String pizhong,
			@RequestParam(name = "kouzanum", required = false) String kouzanum,
			@RequestParam(name = "cusname", required = false) String cusname) {
		JsonResult result = new JsonResult();
		if (prodname.equals("") || maozhong.equals("") || pizhong.equals("") || kouzanum.equals("")||cusname.equals("")) {
			result.error("请填写上面全部信息");
		} else {
			Customer cus = customerService.selectById(Long.valueOf(cusname));
			Discount discount = discountService.selectByDengji(cus.getDj());
			if(null != discount){
				Product product = productService.selectById(Long.valueOf(prodname));
				BigDecimal productprice=new BigDecimal(product.getProductprice());
				BigDecimal zhekou=new BigDecimal(discount.getZhekou());
				double newproductprice = productprice.multiply(zhekou).doubleValue();
				product.setProductprice(String.valueOf(newproductprice));
				result.setData(product);
			}else{
				Product product = productService.selectById(Long.valueOf(prodname));
				result.setData(product);
			}
			result.success();
		}
		return result;
	}

	@RequestMapping("/orderdo_Add")
	public Object orderdo_Add(TOrder order) {
		// 校验
		OrderValidator orderValidator = new OrderValidator();
		Map<String, String> map = orderValidator.valitator(order);
		if (!map.isEmpty()) {
			ModelAndView mv = new ModelAndView();
			mv.setViewName("orderAddView");
			for (String key : map.keySet()) {
				mv.addObject(key, map.get(key));
			}
			return mv;
		}
		// 插入操作
/*		SimpleDateFormat sdf =   new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
		String str = sdf.format(new Date());*/
		order.setCreatedate(new Date());
		order.setStatus("1");
		orderService.Do_Add(order);
		return "orderView";
	}

	// 跳转修改页面
	@RequestMapping("/updateOrder")
	public Object update(@RequestParam(name = "id", required = false) Long id) {
		ModelAndView mode = new ModelAndView();
		TOrder order = orderService.selectById(id);
		mode.addObject("uid", order.getId().toString());
		mode.addObject("order", order);
		mode.setViewName("orderUpdateView");
		return mode;
	}
	
	@RequestMapping("/orderdo_update")
	public Object orderdo_update(TOrder order) {
		// 校验
		OrderValidator orderValidator = new OrderValidator();
		Map<String, String> map = orderValidator.valitator(order);
		if (!map.isEmpty()) {
			ModelAndView mv = new ModelAndView();
			mv.setViewName("orderUpdateView");
			for (String key : map.keySet()) {
				mv.addObject(key, map.get(key));
			}
			return mv;
		}
		order.setCreatedate(new Date());
		orderService.Do_Update(order);
		return "orderView";
	}
	
	//删除
	@RequestMapping("/deleteOrder")
	@ResponseBody
	public JsonResult deleteOrder(@RequestParam(name = "id", required = false) Long id){
		JsonResult result = new JsonResult();
		orderService.deleteById(id);
		result.success();
		return result;
		
	}
	
	@RequestMapping("/showXiaoLiang")
	public Object showXiaoLiang() {
		return "/showXiaoLiang";
	}
	
	@RequestMapping("/shouhuotongji")
	public Object shouhuotongji() {
		return "/shouhuotongji";
	}
	
	@RequestMapping("/shouhuomingxi")
	public Object shouhuomingxi() {
		return "/shouhuomingxi";
	}
	
	@RequestMapping("/checkOrder")
	public Object checkOrder(@RequestParam(name = "id", required = false) Long id) {
		ModelAndView mode = new ModelAndView();
		TOrderAndCusAndPro order = orderService.selectcheckById(id);
		mode.addObject("order", order);
		mode.setViewName("checkorderView");
		return mode;
	}
安装部署需求

利用IDEA直接启动运行

总体设计

本系统是一个基于springboot的微服务架构,前端使用熟知的JavaScript脚本实现系统页面,在后期的发布通过Tomcat服务器部署,也可以通过nginx进行服务代理或者集成负载。
这个系统的设计采用MVC模式,按照视图、控制、数据处理、持久层划分实现。简化了大量的配置和程序代码的耦合性。数据库采用免费开源的MySQL数据库,即节约了成本能够支撑起真个系统业务数据和信息化数据的存储。

本项目用到的技术和框架

1.开发语言:Java
2.开发模式:B/S
3.数据库:MySQL
4.框架:springboot+mybatis+bootstrap+HTML

本项目中的关键点

此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。

环境工具

开发工具 Eclipse/IDEA
语言 JDK1.8 、bootstrap、springboot、mybatis
硬件:笔记本电脑;
软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
操作系统:Windows 10;
其它软件:截图工具、常用浏览器;


http://www.kler.cn/a/393733.html

相关文章:

  • Excel筛选的操作教程
  • C++中string的新特性
  • 简单叙述 Spring Boot 启动过程
  • 【云计算解决方案面试整理】1-2云计算基础概念及云计算技术原理
  • Springboot 日志处理(非常详细)
  • vue中如何关闭eslint检测?
  • 动手学深度学习69 BERT预训练
  • vue3入门知识(二)
  • Linux 网络编程
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-tool usage入门-集成心知天气(二)
  • Linux源码阅读笔记-V4L2框架基础介绍
  • 基于微信小程序的计算机实验室排课与查询系统
  • ubuntu22.04与ubuntu24.10使用Remmina远程桌面共享
  • android开发
  • 主动测量View的宽高
  • 隧道技术-tcp封装icmp出网
  • 【前端】技术演进发展简史
  • 统计HBase表记录条数的方法
  • shellLoad
  • 机器学习(1)线性回归
  • 2024年11月12日Github流行趋势
  • ubuntu cmake CPack将第三方库进行打包
  • 机器学习—决定下一步做什么
  • 关于学习炸鸡佬智能手表 应用硬件IIC1来取代原来软件模拟的IIC
  • Java编程优化:深入理解多态和接口中的方法实现
  • 支持向量机 SVM