java SSM物资采购管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点
    java SSM物资采购管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,spring+springMVC+mybatis),对理解JSP java编程开发语言有帮助,系统具有完整的源代
码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。

SSM 物资采购管理系统


二、功能介绍
一、用户管理
(1)角色管理:对角色信息进行添加、删除、修改和查看
(2)用户管理:对用户信息进行添加、删除、修改和查看
(3)物资类别管理:对物资类别信息进行添加、删除、修改和查看
(4)物资管理:对物资信息进行添加、删除、修改和查看
(5)入库管理:对入库信息进行添加、删除、修改和查看
(6)出库管理:对出库信息进行添加、删除、修改和查看
(7)材料申请管理:对材料申请信息进行添加、删除、修改和查看
(8)询价管理:对询价信息进行添加、删除、修改和查看
(9)采购合同管理:对采购合同信息进行添加、删除、修改和查看
   
  数据库设计

[表jiaose] 角色列属性表格

序号字段名称数据类型长度主键描述
1jsidINTEGER11角色编号
2jsVARCHAR40角色

[表yonghu] 用户列属性表格

序号字段名称数据类型长度主键描述
1yhidINTEGER11用户编号
2yhmVARCHAR40用户名
3mmVARCHAR40密码
4xmVARCHAR40姓名
5jsVARCHAR40角色
6lxdhVARCHAR40联系电话
7lxdzVARCHAR40联系地址

[表wzlb] 物资类别列属性表格

序号字段名称数据类型长度主键描述
1wzlbidINTEGER11物资类别编号
2lbVARCHAR40类别

[表wuzi] 物资列属性表格

序号字段名称数据类型长度主键描述
1wzidINTEGER11物资编号
2wzmcVARCHAR40物资名称
3lbVARCHAR40类别
4sxVARCHAR40属性
5smVARCHAR40说明
6kcVARCHAR40库存
7bzVARCHAR40备注

[表ruku] 入库列属性表格

序号字段名称数据类型长度主键描述
1rkidINTEGER11入库编号
2wzVARCHAR40物资
3rkslVARCHAR40入库数量
4czsjVARCHAR40操作时间
5czrVARCHAR40操作人

[表chuku] 出库列属性表格

序号字段名称数据类型长度主键描述
1ckidINTEGER11出库编号
2wzVARCHAR40物资
3ckslVARCHAR40出库数量
4czsjVARCHAR40操作时间
5czrVARCHAR40操作人

[表clsq] 材料申请列属性表格

序号字段名称数据类型长度主键描述
1clsqidINTEGER11材料申请编号
2sqdhVARCHAR40申请单号
3btVARCHAR40标题
4clVARCHAR40材料
5slVARCHAR40数量
6nrVARCHAR40内容
7fbsjVARCHAR40发布时间
8ztVARCHAR40状态
9yhVARCHAR40用户
10sqsjVARCHAR40申请时间
11gysVARCHAR40供应商

[表xunjia] 询价列属性表格

序号字段名称数据类型长度主键描述
1xjidINTEGER11询价编号
2gysVARCHAR40供应商
3clVARCHAR40材料
4sqVARCHAR40申请
5jgVARCHAR40价格
6pzVARCHAR40品质
7jqVARCHAR40交期
8fkfsVARCHAR40付款方式
9ztVARCHAR40

状态

代码设计

	@Resource rukuDao rukudao;
	@RequestMapping(value="/addPage")
	public String addPage(ruku ruku,HttpServletRequest request){
		Map<String,Object> map= new HashMap<String,Object>();
		
		System.out.println("addPageok");
		return "ruku/rukuadd";
	}
	
	@RequestMapping(value="/add")
	public String add(ruku ruku,HttpServletRequest request){
		Map<String,Object> map= new HashMap<String,Object>();
		//String name=(String)request.getParameter("name");

		map.put("rkid", ruku.getRkid());//入库编号

		map.put("wz", ruku.getWz());//物资

		map.put("rksl", ruku.getRksl());//入库数量

		map.put("czsj", ruku.getCzsj());//操作时间

		map.put("czr", ruku.getCzr());//操作人

		rukudao.save(map);
		DBO db=new DBO();
		String sql="";
		try{
			sql="update wuzi set kc=kc+"+ruku.getRksl()+" where wzmc='"+ruku.getWz()+"'";
			db.update(sql);
		}catch(Exception e){
			e.printStackTrace();
		}
		
		
		request.setAttribute("msg", "<script>alert('入库成功');</script>");
		System.out.println("addok");
		return "ruku/rukuadd";
	}
	
	/**删除 
	 * 
	 */
	@RequestMapping(value="/del")
	public String  del(Integer id,HttpServletRequest request,Map<String,Object> map){
	//	Map<String,Object> map= new HashMap<String,Object>();
		String a=(String)request.getParameter("keyid");
		id=Integer.parseInt(a);
		request.setAttribute("msg", "<script>alert('删除成功');</script>");
		rukudao.del(id);
		return selectall(null,map,request);
	}
	/**
	 * 修改ruku信息
	 */
	@RequestMapping(value="/update")
	public String update(ruku ruku,HttpServletRequest request,Map<String,Object> map1){
		Map<String,Object> map= new HashMap<String,Object>();
		map.put("rkid", ruku.getRkid());//入库编号

		map.put("wz", ruku.getWz());//物资

		map.put("rksl", ruku.getRksl());//入库数量

		map.put("czsj", ruku.getCzsj());//操作时间

		map.put("czr", ruku.getCzr());//操作人

		request.setAttribute("msg", "<script>alert('修改成功');</script>");
		rukudao.update(map);
		return selectall(null,map1,request);
	}
	/**
	 * 查询ruku信息
	 */
	@RequestMapping(value="/modify")
	public String modify(Integer id,Map<String,Object> map,HttpServletRequest request){
		String keyid=(String)request.getParameter("keyid");
		List<Map<String,Object>> list= new  ArrayList<Map<String,Object>>();
		list=rukudao.select(Integer.parseInt(keyid));
		request.setAttribute("rkid", list.get(0).get("rkid"));//入库编号

		request.setAttribute("wz", list.get(0).get("wz"));//物资

		request.setAttribute("rksl", list.get(0).get("rksl"));//入库数量

		request.setAttribute("czsj", list.get(0).get("czsj"));//操作时间

		request.setAttribute("czr", list.get(0).get("czr"));//操作人

		
		return "ruku/rukumodify";
	}
	
	@RequestMapping(value="/detail")
	public String detail(Integer id,Map<String,Object> map,HttpServletRequest request){
		String keyid=(String)request.getParameter("keyid");
		List<Map<String,Object>> list= new  ArrayList<Map<String,Object>>();
		list=rukudao.select(Integer.parseInt(keyid));
		request.setAttribute("rkid", list.get(0).get("rkid"));//入库编号

		request.setAttribute("wz", list.get(0).get("wz"));//物资

		request.setAttribute("rksl", list.get(0).get("rksl"));//入库数量

		request.setAttribute("czsj", list.get(0).get("czsj"));//操作时间

		request.setAttribute("czr", list.get(0).get("czr"));//操作人

		return "ruku/rukudetail";
	}

三、注意事项
    1、管理员账号:admin 密码:admin 数据库配置文件datasource.properties
     2、开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。
    3、数据库文件名是jspssmwzcg.sql,系统名称ssmwzcg
    4、系统首页地址:http://127.0.0.1:8080/ssmwzcg/index.jsp

四系统实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/314753.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JDBC-数据库连接池(druid)

一、背景 在介绍JDBC基本概念中&#xff0c;似乎Java程序每次与数据库交互都要通过驱动创建一个新的连接对象&#xff08;Connection&#xff09;&#xff0c;再由连接对象创建一个可执行SQL的Statement对象&#xff08;或PreparedStatement对象&#xff09;&#xff0c;操作完…

一键搭建elk

一键启动elk 1. 生成环境的脚本 setup.sh #!/usr/bin/bash# logstash enviroment mkdir -p logstash touch logstash/logstash.conf # shellcheck disableSC1078 echo input {tcp {mode > "server"host > "0.0.0.0"port > 4560codec > jso…

HCIP OSPF实验

任务&#xff1a; 1.使用三种解决ospf不规则区域的方法 2.路由器5、6、7、8、15使用mgre 3.使用各种优化 4.全网可达 5.保证更新安全 6.使用地址为172.16.0.0/16合理划分 7.每个路由器都有环回 拓扑图&IP划分如下&#xff1a; 第一步&#xff0c;配置IP&环回地址…

【面试突击】网关系统面试实战

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 欢迎关注公众号&#xff08;通过文章导读关注&#xff1a;【11来了】&#xff09;&#xff0c;及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理…

Netty 介绍、使用场景及案例

Netty 介绍、使用场景及案例 1、Netty 介绍 https://github.com/netty/netty Netty是一个高性能、异步事件驱动的网络应用程序框架&#xff0c;用于快速开发可扩展的网络服务器和客户端。它是一个开源项目&#xff0c;最初由JBoss公司开发&#xff0c;现在由社区维护。Netty的…

qt初入门2:qt选择一个文件或者目录,获取当前目录,操作文件目录等整理

最近用qt操作文件或者目录的动作比较多&#xff0c;简单整理一下常用的接口&#xff0c;方便回顾。 总的来说&#xff0c;其实就是用文件选择对话框QFileDialog类&#xff0c;以及操作文件信息的QFileInfo类&#xff0c;以及相关QCoreApplication中静态成员函数获取一些信息&a…

对话姿美堂创始人董事长徐熙明:不受短期诱惑和外界噪音的影响,坚持做难而正确的事

“ 客户至上 ” 整理 | 云舒&凯丰 编辑 | 梦遥 出品&#xff5c;极新&#xff06;北京电子商务协会 在过去几年中&#xff0c;直播电商经历了显著的发展&#xff0c;成为数字化零售领域的一个重要分支。随着智能手机和高速互联网的普及&#xff0c;消费者的购物习惯发生…

聚焦老年生活与健康,“老有所依·情暖夕阳”元岗街社区微型养老博览会顺利开展

尊老敬老是中华民族的传统美德&#xff0c; 爱老助老是全社会的共同责任。 家有一老&#xff0c;如有一宝&#xff0c; 长者的生活情况是一个家庭的头等大事&#xff0c; 做好长者服务是街道和社区的重要工作。 2024年1月6日&#xff0c;由元岗街道党工委、元岗街道办事处、…

OpenGl 19高级GLSL

一.GLSL的内建变量 在着色器中&#xff0c;需要当前着色器以外地方的数据的话&#xff0c;必须把数据传进来。之前我们是通过uniform类型和采样器来完成的。之外&#xff0c;GLSL还支持另外几个以gl为前缀的变量&#xff0c;提供更多读写数据的方式&#xff0c;比如说顶点着色…

ES高级查询

ES中提供了一种强大的检索数据方式&#xff0c;这种检索方式称为Query DSL&#xff0c;这种方式的丰富查询语法让ES检索变得更强大&#xff0c;更简洁。 1.常见查询 1.1查询所有[match_all] match_all关键字&#xff1a;返回索引中的全部文档。 GET /products/_search { &…

acwing4986.互质数的个数

题目不难 有个好的细节想着分享一下 一开始写的有点问题&#xff5e;需要特判掉一个... #include<bits/stdc.h> using namespace std; using ll long long; const int N 1e510;const ll mod 998244353;ll qmi(ll a,ll b){ll ans 1;while(b){if(b&1)ans ans*a%…

(20)Linux初始文件描述符

前言&#xff1a;本章我们介绍 O_WRONLY, O_TRUNC, O_APPEND 和 O_RDONLY。之后我们开始讲解文件描述符。 一、系统传递标记位 1、O_WRONLY C 语言在 w 模式打开文件时&#xff0c;文件内容是会被清空的&#xff0c;但是 O_WRONLY 好像并非如此&#xff1f; 代码演示&…

H264码流进行RTP包封装

一.H264基本概念 H.264从框架结构上分为视频编码层&#xff08;VCL&#xff09;和网络抽象层&#xff08;NAL&#xff09;&#xff0c;VCL功能是进行视频编解码&#xff0c;包括运动补偿预测&#xff0c;变换编码和熵编码等功能&#xff1b;NAL用于采用适当的格式对VCL视频数据…

【竞技宝】DOTA2:梦幻联赛开战在即 中国区前两名将晋级正赛

北京时间2024年1月12日&#xff0c;近期DOTA2刚刚结束了别墅杯东南亚/中国区的封闭预选赛&#xff0c;而别墅杯的正赛还要等到下个月才会正式开打&#xff0c;而即将在明天开始进行的是梦幻联赛S22的中国区预选赛&#xff0c;除官方直邀的XG战队直接晋级正赛之外&#xff0c;其…

【Leetcode】2085. 统计出现过一次的公共字符串

文章目录 题目思路代码 题目 2085. 统计出现过一次的公共字符串 思路 使用两个哈希表 words1Count 和 words2Count 分别统计两个数组中每个单词的出现次数。然后遍历 words1Count 中的每个单词&#xff0c;如果该单词在 words1 中出现了一次&#xff0c;且在 words2 中也出…

深入理解计算机系统(2):信息的表示和处理

信息存储 大多数计算机使用 8 位的块&#xff0c;或者字节(byte)&#xff0c;作为最小的可寻址的内存单位&#xff0c;而不是访问内存中单独的位。机器级程序将内存视为一个非常大的字节数组&#xff0c;称为虚拟内存(virtual memory)。内存的每个字节都由一个唯一的数字来标识…

地表最强,接口调试神器Postman ,写得太好了!

postman是一款支持http协议的接口调试与测试工具&#xff0c;其主要特点就是功能强大&#xff0c;使用简单且易用性好 。 无论是开发人员进行接口调试&#xff0c;还是测试人员做接口测试&#xff0c;postman都是我们的首选工具之一 。 那么接下来就介绍下postman到底有哪些功…

连续多级主管

背景 组织中一般会有个直接主管&#xff0c;或者汇报主管&#xff0c;有的组织可能有多个主管&#xff0c;更有甚者一个人能可能在不同的业务项目中&#xff0c;这样这个人可能存在n个主管&#xff0c;这样在设计流程中就会衍生出很多问题来。一起看一款审批软件的设置&#x…

加入 The Sandbox,在「小王子:友谊与慈善的冒险」中踏上奇幻旅途

这次体验不仅是一次冒险&#xff0c;更是一次充满爱心的愉悦探索。此外&#xff0c;您购买的 NFT 还将用于慈善教育项目&#xff1a;它由安托万德圣埃克苏佩里青少年基金会资助&#xff0c;其中一部分销售收入将用于支持这个慈善机构。这次寓教于乐的旅程交织着对爱、友谊的思考…

MySQL比较运算符详解

MySQL比较运算符详解 一、常用的比较运算符二、比较运算符的使用方法2.1 等于运算符&#xff08;&#xff09;2.2 不等于运算符&#xff08;<>或!&#xff09;2.3 大于运算符&#xff08;>&#xff09;2.4 小于运算符&#xff08;<&#xff09;2.5 大于等于运算符&…