⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stockinupdate.java

📁 基于J2EE的网络物流系统 用户操作: 1. 录入出库商品信息 2. 查询出库单信息 3. 录入入库商品信息 4. 查询入库单信息 5. 查询商品位置信息 6. 查询商品信息 7. 查
💻 JAVA
字号:
package com.logistic.servlet;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.logistic.business.StockInManager;
import com.logistic.data.DataConnect;
import javax.servlet.http.HttpSession;
import java.sql.Statement;
import java.sql.ResultSet;
import java.util.Calendar;
import java.text.*;

public class StockInUpdate extends HttpServlet {


	private static final long serialVersionUID = -2305260907601477327L;
	HttpSession 	session=null;
	DataConnect 	dc=new DataConnect();
	Statement 		stat=null;
	ResultSet 		rs=null;
	String  		stockinid=null;			//商品入库单编号
	String 			chargeid=null;			//负责人编号
	String   		stockindate=null;			//入库日期
	String 			goodsid=null;			//商品编号
	String 			commodityid=null;		//商品分类编号
	String 			typeid=null;			//商品型号编号
	String 			stockinmemo=null;		//商品入库备注信息
	int    			stockinnum=0;			//商品入库数量
	int    			goodsnum=0;				//商品库存量
	int             modifynum=0;		//修改后的商品入库数量
	int    			flag=0;					//标识
	RequestDispatcher requestdispatcher;


	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		request.setCharacterEncoding("GB2312");
		response.setContentType("text/html; charset=gb2312");
		session=request.getSession();
/*----------从页面stockinupdate.jsp页面获取参数进行合法性判断后进行更新-------*/
		
		 //从页面取得修改后的商品数量,并把它由String类型转换为Integer类型
		 try{			 
			 modifynum=Integer.valueOf((String)request.getParameter("stockinnum"));		
		     }catch(NumberFormatException ex){System.out.print("StockInNum类型转换错误!");ex.printStackTrace();}
		 
		
		     stockinid=(String)request.getParameter("siid");		  //获得入库单编号
		     stockindate=(String)new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
		     chargeid=(String)request.getParameter("stockincharge");  //获得入库负责人编号
		     goodsid=(String)request.getParameter("stockinname");     //获得商品编号
		     commodityid=(String)request.getParameter("commodityid"); //获得商品分类编号
		     typeid=(String)request.getParameter("goodstype");		  //获得商品型号编号
		     stockinmemo=(String)request.getParameter("stockinmemo"); //获得入库备注信息
		 
		 if((modifynum==0||modifynum<0)||chargeid==null||goodsid==null||typeid==null){			 
			   session.setAttribute("errors", "入库单数据添加失败,*标识选项必须正确填写!");
			   requestdispatcher=request.getRequestDispatcher("/errors/errorpage.jsp");
			   requestdispatcher.forward(request, response);
		 }
		 
	   try{
				
				int flag_get=-10;   //查询商品信息表的flag_get标志
				int flag_update=-10;//更新商品信息表的flag_update标志
				//下面的sqlgoods,select语句的功能是:从数据表goodsinfotabl检索是否有符合goodsid,commodityid和typeid数据。
				String sqlgoods="select * from goodsinfotable  where GoodsId='"+goodsid+"'and GoodsCateId='"+commodityid+"'and TypeId='"+typeid+"'";
				flag_get=dc.selectdata(sqlgoods);
				
		   if(flag_get>0){
				 	
			    	//根据入库单编号取得入库单的商品数量
			    	try{
			    		String strsql="select * form stockininfotable where StockInId="+stockinid;
			    		stat=dc.getStmtread();
			    		rs  =stat.executeQuery(strsql);
			    			while(rs.next()){
			    				  stockinnum=Integer.valueOf(rs.getInt("GoodsInNumber"));
			    			}			    		
			    	    }catch(Exception ex){ex.printStackTrace();}finally{dc.close();}
			    	    
			    	//根据商品编号、商品分类编号、商品型号编号取得商品在库数量    
					try{
						 stat=dc.getStmtread();
				         rs=stat.executeQuery(sqlgoods);
				         rs.previous();
				          //取得商品库存数量
				          while(rs.next()){
				        	   goodsnum=Integer.valueOf(rs.getString("GoodsStockNumber"));
				           }
					    }catch(Exception ex){ex.printStackTrace();}finally{dc.close();}
				        
/*(1)如果指定编号商品的入库量修改后比原来的入库量多了,更新该商品的入库量和总库存量
 *     入库量=原入库量+数量差 ,总库存量=原总库存+数量差
 *(2)如果指定编号商品的入库量修改后比原来的入库量少了,更新该商品的入库量和总库存量 
 *     入库量=原入库量-数量差 , 总库存量=原总库存-数量差
 *(2)如果指定编号商品的入库量修改后和原来一样
 *     入库量=修改后的入库量,总库存量=原库存量       
 * */					   
					   if(modifynum>stockinnum){							  //(1)
						   stockinnum=stockinnum+(modifynum-stockinnum);   
						   goodsnum  =goodsnum+(modifynum-stockinnum);
					   }else if(modifynum<stockinnum){						  //(2)
						   stockinnum=stockinnum-(stockinnum-modifynum);
						   goodsnum  =goodsnum-(stockinnum-modifynum);
					   }else{												  //(3)
						   stockinnum=modifynum;
					   }				         
				         //更新商品信息表的商品总库存量
				       flag_update=dc.updata("update goodsinfotable set GoodsStockNumber='"+goodsnum+"' where GoodsId='"+goodsid+"' and GoodsCateId='"+commodityid+"'and TypeId='"+typeid+"'");
				         //如果更新商品信息表成功,则更新商品入库信息
				         if(flag_update>0){
							 StockInManager sm=new StockInManager();
							 flag=sm.ModifyStockIn(stockinid, stockindate, chargeid, goodsid, stockinnum, typeid, commodityid, stockinmemo);
							 //如果根新商品入库信息成功,则跳转到stockinsave.jsp页面
							 if(flag>0){
				        	  
								 session.setAttribute("success","入库单数据修改成功!");
								 requestdispatcher=request.getRequestDispatcher("/viewpage/datainput/stockinsave.jsp");
								 requestdispatcher.forward(request, response);
							 
							  }else{
							 //如果添加商品入库信息失败,则跳转到errorpage.jsp页面	  
								  session.setAttribute("errors", "入库单数据修改失败!");
								  requestdispatcher=request.getRequestDispatcher("/errors/errorpage.jsp");
								  requestdispatcher.forward(request, response);
							  }
							}		 
				  }else{
						//如果flag_get<=0(符合条件的商品信息不存在)跳转到errorpage.jsp
						session.setAttribute("errors","入库商品信息不存在,请先添加商品信息!");
						requestdispatcher=request.getRequestDispatcher("/errors/errorpage.jsp");
						requestdispatcher.forward(request, response);
			          }				 
		  }catch(Exception ex){ ex.printStackTrace();}
	}
	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException {

		doPost(request,response);
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -