📄 stockinupdate.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 + -