📄 stockoutsave.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.StockOutManager;
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 StockOutSave extends HttpServlet {
private static final long serialVersionUID = -2305260907601477327L;
DataConnect dc=new DataConnect();
Statement stat=null;
ResultSet rs=null;
HttpSession session=null;
int stockoutid=0; //商品出库单编号
String id=null;
String chargeid=null; //出库单负责人编号
String receiveid=null; //商品接受人编号
String outdate=null; //商品出库日期
String goodsid=null; //商品编号
String commodityid=null; //商品分类编号
String typeid=null; //商品型号编号
int stockoutnum=0; //商品出库数量
int goodsnum=0; //商品库存量
String stockoutmemo=null; //出库单备注信息
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();
/*
* 获取stockoutinfotable表的StockOutId字段的最后插入的值,生成下一条记录的StockOutId
* 字段的值!
*/
String sql="select * from stockoutinfotable order by ID desc limit 1";
try{
stat=dc.getStmtread();
rs=stat.executeQuery(sql);
rs.previous();
//取得商品出库信息表中最后一条出库记录的StockOutId,并生成下一条要插入记录的编号
while(rs.next()){
stockoutid=Integer.valueOf(rs.getString("StockOutId"));
}
if(stockoutid>0){
stockoutid+=1;
}else{
stockoutid=10000+1;
}
}catch(Exception ex){
ex.printStackTrace();
}finally{dc.close();}
/*进行数据类型转化,把stockoutid(原为Int型)转化为String类型
* 把stockoutnum(原为String类型)转化为Int类型
*
*/
try{
id=String.valueOf(stockoutid);
stockoutnum=Integer.valueOf((String)request.getParameter("stockoutnum"));
}catch(NumberFormatException ex){ System.out.print("StockOutNum类型转换错误!");ex.printStackTrace();}
outdate=(String)new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());
chargeid=(String)request.getParameter("stockoutcharge");//获得入库负责人编号
goodsid=(String)request.getParameter("outgoodsid"); //获得商品编号
commodityid=(String)request.getParameter("commodityid");//获得商品分类编号
receiveid=(String)request.getParameter("receiveid");
typeid=(String)request.getParameter("goodstype"); //获得商品型号编号
stockoutmemo=(String)request.getParameter("stockoutmemo");//获得入库备注信息
if((stockoutnum==0||stockoutnum<0)||chargeid==null||goodsid==null||commodityid==null||receiveid==null||typeid==null){
session.setAttribute("errors", "出库单数据添加失败,*标识选项必须填写!");
requestdispatcher=request.getRequestDispatcher("/errors/errorpage.jsp");
requestdispatcher.forward(request, response);
}
System.out.println(outdate);
System.out.println(goodsid);
System.out.println(commodityid);
System.out.println(typeid);
try{
int flag_get=-10;
int flag_update=-10;
//下面的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{
//取出商品库存数量
stat=dc.getStmtread();
rs=stat.executeQuery(sqlgoods);
rs.previous();
while(rs.next()){
goodsnum=Integer.valueOf(rs.getString("GoodsStockNumber"));
}
//如果商品出库数量比库存量大,那么跳到errorpage.jsp页面
if(stockoutnum>goodsnum){
session.setAttribute("errors","库存量不足!请您先查看库存,重新选择商品出库量!");
requestdispatcher=request.getRequestDispatcher("/errors/errorpage.jsp");
requestdispatcher.forward(request, response);
}else{
//如果商品库存量大于出库量,那么更新商品信息表中的商品库存量(商品库存量-商品出库量)
goodsnum=goodsnum-stockoutnum;
flag_update=dc.updata("update goodsinfotable set GoodsStockNumber='"+goodsnum+"' where GoodsId='"+goodsid+"' and GoodsCateId='"+commodityid+"'and TypeId='"+typeid+"'");
if(flag_update>0){
//如果商品库存量更新成功,添加出库单信心
StockOutManager sm=new StockOutManager();
flag=sm.AddStockOut(id, outdate, chargeid, goodsid, stockoutnum,receiveid,typeid, commodityid, stockoutmemo);
if(flag>0){
//如果商品出库单信息添加成功,重新跳转到stockoutsave.jsp页面
session.setAttribute("success","出库单数据添加成功!");
requestdispatcher=request.getRequestDispatcher("/viewpage/datainput/stockoutsave.jsp");
requestdispatcher.forward(request, response);
}else{
//如果商品出库信息添加失败,怎跳转到errorpage.jsp页面
session.setAttribute("errors", "出库单数据添加失败!");
requestdispatcher=request.getRequestDispatcher("/errors/errorpage.jsp");
requestdispatcher.forward(request, response);
}
}else{
}
}
}catch(Exception ex){
ex.printStackTrace();
}
}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 + -