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

📄 inputapplyaction.java

📁 hibernate应用测试,初学hibernate 的会员可以看看.
💻 JAVA
字号:
package com.action;

import org.apache.struts.action.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.sql.SQLException;
import java.util.Date;
import java.text.SimpleDateFormat;

import com.bean.InputApply;
import com.dao.*;
import com.tool.QueryStrCreator;
import com.tool.LogTableWriter;
import com.tool.pagetool.PageTool;
import com.tool.pagetool.Page;
import com.tool.pagetool.PageToolBuilder;

/**
 * <p>Title: 入库申报</p>
 *
 * <p>Description: 添加入库申报、撤消入库申报</p>
 *
 * <p>Copyright: Copyright (c) 2007</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class InputApplyAction extends Action {
    public ActionForward execute(ActionMapping mapping,
                                 ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response) throws Exception {
        request.setCharacterEncoding("gb2312");
        response.setContentType("text/html;charset=gb2312");

        InputApply inputApply = (InputApply) form;
        String flag = request.getParameter("flag");
        ActionErrors actionErrors = new ActionErrors();
        String target = "";

        //入库申报
        if (flag.equals("forA")) {
            try {

                InputApplyDAO.startTransation();
                int lastId = InputApplyDAO.getLastId();
                inputApply.setInApId(lastId + 1);
                inputApply.setDelFlag(0);
                String sysDate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); //获得系统当前时间
                inputApply.setApplyDate(sysDate);
                InputApplyDAO.insertInputApply(inputApply);
                InputApplyDAO.commit();
                request.setAttribute("inputAppForM", inputApply);
                ActionError actionError = new ActionError(
                        "errors.addSuccese");
                actionErrors.add("addInputApplySuccese", actionError);
                saveErrors(request, actionErrors);
                target = "addInputApply";
                //写入日志
                String operatorType = "增";
                String sql = "insert into INPUT_APPLY (in_ap_id," +
                             "client_id,sh_id,product_id,apply_date,apply_peop," +
                             "tel,handset,email,stock_request,insurance_flag,"+
                             "insurance_count,insurance_perod,app_in_date,"+
                             "input_amount,input_weight,used_area)"+
                             " values (" + inputApply.getInApId() + "," +
                             inputApply.getClientId()+","+inputApply.getShId()
                             +","+inputApply.getProductId()+","+inputApply.getApplyDate()
                             +","+inputApply.getApplyPeop()+","+inputApply.getTel()+","+inputApply.getHandset()
                             +","+inputApply.getEmail()+","+inputApply.getStockRequest()
                             +","+inputApply.getInsuranceFlag()+","+inputApply.getInputAmount()
                             +","+inputApply.getInsurancePerod()+","+inputApply.getAppInDate()
                             +","+inputApply.getInputAmount()+","+inputApply.getInputWeight()
                             +","+inputApply.getUsedArea()+")";
                LogTableWriter.write(request, operatorType, sql);
            } catch (SQLException e) {
                e.printStackTrace();
                ActionError actionError = new ActionError("errors.generally.failed",e.getMessage());
                actionErrors.add("addInputApplyFeiled", actionError);
                saveErrors(request, actionErrors);
                target = "addInputApplyFeiled";
            } finally {
                InputApplyDAO.rollback();
            }
        }

        //删除入库申请,只作标记不物理删除
        if (flag.equals("delete")) {
            String inApIdStr = request.getParameter("inApId");
            int inApId = -1;
            if (inApIdStr != null) {
                try {
                    inApId = Integer.parseInt(inApIdStr);
                    InputApplyForeignkeyViewDAO.startTransation();
                    InputApplyForeignkeyViewDAO.updateInputApplySetDelFlagYes(inApId);
                    InputApplyForeignkeyViewDAO.commit();

                    ActionError actionError = new ActionError(
                            "errors.cancleInputApplySuccese");
                    actionErrors.add("CancleInputApplySuccese", actionError);
                    saveErrors(request, actionErrors);
                    target = "listForMInputApp";

                    //写入日志
                    String operatorType = "删";
                    String sql = "update INPUT_APPLY set " +
                                 "DEL_FLAG=1 where IN_AP_ID = " +
                                 inApId;

                    LogTableWriter.write(request, operatorType, sql);

                } catch (Exception e) {
                    e.printStackTrace();
                    ActionError actionError = new ActionError(
                            "errors.deleteFeiled");
                    actionErrors.add("cancleInputApplyFeiled", actionError);
                    saveErrors(request, actionErrors);
                    target = "listForMInputApp";
                } finally {
                    InputApplyForeignkeyViewDAO.rollback();
                }
            }
        }

        //激活入库申请,将标记改为1
        if (flag.equals("deleteActDo")) {
            String inApIdStr = request.getParameter("inApId");
            int inApId = -1;
            if (inApIdStr != null) {
                try {
                    inApId = Integer.parseInt(inApIdStr);
                    InputApplyForeignkeyViewDAO.startTransation();
                    InputApplyForeignkeyViewDAO.updateInputApplySetDelFlagNo(inApId);
                    InputApplyForeignkeyViewDAO.commit();

                    ActionError actionError = new ActionError(
                            "errors.activeInputApplySuccese");
                    actionErrors.add("ActiveInputApplySuccese", actionError);
                    saveErrors(request, actionErrors);
                    target = "activeCancledInputApp";

                    //写入日志
                    String operatorType = "激活";
                    String sql = "update INPUT_APPLY set " +
                                 "DEL_FLAG=0 where IN_AP_ID = " +
                                 inApId;

                    LogTableWriter.write(request, operatorType, sql);

                } catch (Exception e) {
                    e.printStackTrace();
                    ActionError actionError = new ActionError(
                            "errors.activeInputApplyFeiled");
                    actionErrors.add("activeInputApplyFeiled", actionError);
                    saveErrors(request, actionErrors);
                    target = "listForMInputApp";
                } finally {
                    InputApplyForeignkeyViewDAO.rollback();
                }
            }
        }

        //修改入库申报(select具体要修改的)
        if(flag.equals("doEdit")){
            String inApIdStr = request.getParameter("inApId");
            String forNotify = (request.getParameter("forNotify")==null?"":request.getParameter("forNotify"));
            int inApId = -1;
            if (inApIdStr != null) {
                try {
                    inApId = Integer.parseInt(inApIdStr);
                    InputApply inputApp=InputApplyDAO.selectInputApplyByinApId(inApId);
                    request.setAttribute("inputAppForM", inputApp);
                } catch (Exception e) {
                    e.printStackTrace();
                    ActionError actionError = new ActionError(
                            "errors.diplayInputApplyFeiled");
                    actionErrors.add("diplayInputApplyFeiled", actionError);
                    saveErrors(request, actionErrors);
                    target = "listForMInputApp";
                } finally {
                    InputApplyForeignkeyViewDAO.rollback();
                }
            }
            if(forNotify.equalsIgnoreCase("yes")){
                target = "forNotify";
            }else target = "inputAppForM";
        }

        //入库申报修改
        if (flag.equals("inDoEdit")) {
            try {
                String sysDate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); //获得系统当前时间
                inputApply.setApplyDate(sysDate);
                InputApplyDAO.startTransation();
                InputApplyDAO.updateInputApply(inputApply);
                InputApplyDAO.commit();
                request.setAttribute("inputAppForM", inputApply);
                ActionError actionError = new ActionError(
                        "errors.editSuccese");
                actionErrors.add("editInputApplySuccese", actionError);
                saveErrors(request, actionErrors);
                target = "editSuccessed";
                //写入日志
                String operatorType = "改";
                String sql = "update INPUT_APPLY set client_id="+inputApply.getClientId()+",sh_id="+inputApply.getShId()+
                             ",,product_id="+inputApply.getProductId()+",apply_date="+inputApply.getApplyDate()+",apply_peop="+
                             inputApply.getApplyPeop()+",tel="+inputApply.getTel()+",handset="+inputApply.getHandset()+
                             ",email="+inputApply.getEmail()+",stock_request="+inputApply.getStockRequest()+",insurance_flag="+
                             inputApply.getInsuranceFlag()+",insurance_count="+inputApply.getInputAmount()+",insurance_perod"+
                             inputApply.getInsurancePerod()+",app_in_date="+inputApply.getAppInDate()+",input_amount="+
                             inputApply.getInputAmount()+",input_weight"+inputApply.getInputWeight()+",used_area="+inputApply.getUsedArea();
                LogTableWriter.write(request, operatorType, sql);
            } catch (SQLException e) {
                e.printStackTrace();
                ActionError actionError = new ActionError("errors.editFailed",e.getMessage());
                actionErrors.add("addInputApplyFeiled", actionError);
                saveErrors(request, actionErrors);
                request.setAttribute("inputAppForM", inputApply);
                target = "inputAppForM";
            } finally {
                InputApplyDAO.rollback();
            }
        }

        //选择分页及跳转
        if ((!flag.equals("forA")) && (!flag.equals("inDoEdit")) && (!flag.equals("doEdit"))) {
            if (flag.equals("forActive")||flag.equals("deleteActDo")){
                initPage(request,true); //初始化分页数据并放于request中
                target = "activeCancledInputApp"; //重定向到入库申报激活页面
            }else if (flag.equals("forM")) {
                initPage(request,false); //初始化分页数据并放于request中
                target = "listForMInputApp"; //重定向到入库申报撤消页面
            }else if(flag.equals("forEdit")){
                initPage(request,false); //初始化分页数据并放于request中
                target = "listForMInputApp"; //重定向到入库申报撤消页面
            }else if(flag.equals("forNotify")){
                initPage(request,false); //初始化分页数据并放于request中
                target = "listForCreateNotify"; //重定向到产生入库通知页面
            }else if(flag.equals("forCreateInReg")){
                initPage(request,false);
                target="listForCreateInReg";
            }else {
                initPage(request,false);
            } //初始化分页数据并放于request中
        }
        return mapping.findForward(target);
    }

    //初始化并获得分页
    private Page initPage(HttpServletRequest request,boolean isActive) {
        String currentPageStr = request.getParameter("currentPage");
        String queryStr = QueryStrCreator.create("inputApply", request);
        int currentPage = 1; //当前页码
       int size = 20; //每页的记数

        try { //防止从地址栏直接输入非法页码
            if (currentPageStr != null) currentPage = new Integer(
                    currentPageStr).intValue();

        } catch (Exception e) {
            e.printStackTrace();
        }

        //处理分页
        //会话中是否已有分页生成工具
        PageTool pageTool = null;
        HttpSession session = request.getSession();
        if(!isActive){
            pageTool = (PageTool) session.getAttribute("inputApplyPageTool"); //有,则直接拿来用
            if (pageTool == null) { //没有,则新建,并放进会话中,以备下次用
                pageTool = PageToolBuilder.builder(new
                        InputApplyForeignkeyViewDAO(isActive));
                session.setAttribute("inputApplyPageTool", pageTool);
            }
        }else{
            pageTool = (PageTool) session.getAttribute("inputApplyPageToolForAct"); //有,则直接拿来用
           if (pageTool == null) { //没有,则新建,并放进会话中,以备下次用
               pageTool = PageToolBuilder.builder(new
                       InputApplyForeignkeyViewDAO(isActive));
               session.setAttribute("inputApplyPageToolForAct", pageTool);
           }

        }
        //由分页工具生成分页
        Page page = null;
        try {
            String flag = request.getParameter("flag");
            if (flag.equals("query") || flag.equals("forCreateInReg") || flag.equals("forM") || flag.equals("forEdit") || flag.equals("forNotify")) //查询时的分页
                page = pageTool.createPage(currentPage, size, queryStr);
            else //其它非查询的分页
                page = pageTool.createPage(currentPage, size);
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        //将分页放进请求中,分发到下一个页面显示
        if(!isActive) request.setAttribute("allInputApplyPage", page);
        else request.setAttribute("allInputApplyPageForAct", page);
        return page;
    }
}

⌨️ 快捷键说明

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