📄 contractaction.java
字号:
package com.mdcl.mocha.jlcmcc.contract.action;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.mdcl.mocha.bpm.webcommons.action.BPMBaseAction;
import com.mdcl.mocha.bpm.sdk.ServiceManager;
import com.mdcl.mocha.jlcmcc.contract.Contract;
import com.mdcl.mocha.jlcmcc.contract.ContractAttach;
import com.mdcl.mocha.jlcmcc.contract.IContractManager;
import com.mdcl.mocha.jlcmcc.contract.entity.BigType_SmallTypesBean;
import com.mdcl.mocha.jlcmcc.contract.entity.SmallType_ContractsBean;
/**
*
* <strong>Title : ContractAction<br></strong>
* <strong>Description : 实现对合同范本和合同范本附件的维护 </strong><br>
* <strong>Create on : 2007-9-11<br></strong>
* <p>
* <strong>Copyright (C) Mocha Software Co.,Ltd.<br></strong>
* <p>
* @author wangchl wangchl@mochasoft.com.cn<br>
* @version <strong>吉林移动BPM一期</strong><br>
* <br>
* <strong>修改历史:</strong><br>
* 修改人 修改日期 修改描述<br>
* -------------------------------------------<br>
* <br>
* <br>
*/
public class ContractAction extends BPMBaseAction {
/**
* Logger for this class
*/
private static final Logger S_LOGGER = Logger
.getLogger(ContractAction.class);
/**
* 上传单个文件最大字节数 根据需求参数由配置文件传入
*/
private static final long FILE_SIZE_MAX = 4 * 1024 * 1024;
/**
*
* 方法描述 添加合同范本
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward "SUCCESS"
*/
public ActionForward add(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// System.out.println(">>>> ContractAction.add()");
String bigType="", smallType="",contrName="", summarize="";
bigType = request.getParameter("selBigType");
smallType = request.getParameter("selSmallType");
contrName = request.getParameter("contrName");
summarize = request.getParameter("explain");
//填充对象
Contract cont = new Contract();
cont.setBigType(bigType);
cont.setSmallType(smallType);
cont.setName(contrName);
cont.setSummarize(summarize);
try {
//得到服务实例
IContractManager icont = getService();
boolean falg = icont.addContract(cont);
// System.out.println(">><< save falg:*" + falg + "*");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//组织合同类型
Map typeMap = buildType();
request.setAttribute("typeMap", typeMap);
request.setAttribute("contract", cont);
// System.out.println("<<<< ContractAction.add()");
return mapping.findForward("SUCCESS");
}
/**
*
* 方法描述 删除合同范本
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward "SUCCESS"
*/
public ActionForward delect(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// System.out.println(">>>> ContractAction.delect()");
String contID = request.getParameter("contId");
String bigTypeID = request.getParameter("BTID");
//合同大类型列表
List bigTypes = null;
//一个合同大类的小类型和小类型内的范本的数据集合
BigType_SmallTypesBean bigTypeDates = null;
try {
//得到服务实例
IContractManager service = getService();
//先删除合同范本的附件
Contract cont = service.getContractById(contID);
List contAttachs=cont.getAttachs();
for(int i=0; contAttachs!=null && i<contAttachs.size(); i++){
ContractAttach contAttach = (ContractAttach) contAttachs.get(i);
service.delelteAttach(contAttach.getResourceId());
}
// System.out.println(">><< contID :" + contID);
boolean falg = service.delContract(contID);
// System.out.println(">><< delect falg:" + falg);
//为显示页面准备数据
bigTypes = service.getBigType();
// 得到请求的合同大类型
Map bitItem = service.getBigTypeByID(bigTypeID);
// 组织对应的一个合同大类的数据集
bigTypeDates = this.buildBigTypeDatas(bitItem);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
request.setAttribute("BIGTYPES", bigTypes);
request.setAttribute("BIGTYPEDATAS", bigTypeDates);
// System.out.println("<<<< ContractAction.delect()");
return mapping.findForward("ADMINVIEW");
}
/**
*
* 方法描述 修改合同范本信息
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward "SUCCESS"
*/
public ActionForward update(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// System.out.println(">>>> ContractAction.update()");
String contId="", smallType="",contrName="", summarize="";
contId = request.getParameter("contrId");
smallType = request.getParameter("selSmallType");
contrName = request.getParameter("contrName");
summarize = request.getParameter("explain");
//填充对象
Contract cont = new Contract();
cont.setId(contId);
cont.setSmallType(smallType);
cont.setName(contrName);
cont.setSummarize(summarize);
IContractManager icont = null;
try {
//得到服务实例
icont = getService();
boolean falg = icont.saveContract(cont);
// System.out.println(">><< update falg:*" + falg + "*");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//根据合同范本ID 重新得到合同范本 (起到的作用是刷新当前合同范本的附件列表)
Contract updatedCont = icont.getContractById(contId);
//组织合同类型
Map typeMap = buildType();
request.setAttribute("typeMap", typeMap);
request.setAttribute("contract", updatedCont);
// System.out.println("<<<< ContractAction.update()");
return mapping.findForward("SUCCESS");
}
/**
*
* 方法描述 编辑合同范本(为修改页面准备数据)
* @param mapping
* @param form
* @param request
* @param response
* @return
*/
public ActionForward edit(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
String contId = request.getParameter("contId");
//用于判断是不是管理员
String admin = request.getParameter("admin");
Contract editCont = null;
IContractManager service;
try {
// 得到服务实例
service = getService();
//根据合同范本ID 重新得到合同范本 (起到的作用是刷新当前合同范本的附件列表)
editCont = service.getContractById(contId);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//组织合同类型
Map typeMap = buildType();
request.setAttribute("typeMap", typeMap);
request.setAttribute("contract", editCont);
if(admin != null && admin.equals("true")){
return mapping.findForward("SUCCESS");
}else{
return mapping.findForward("SEE");
}
}
/**
*
* 方法描述 为某个合同范本上传附件
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward "SUCCESS"
*/
public ActionForward uploadAttach(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// System.out.println(">>>> ContractAction.uploadAttach()");
// 附件上载工具
DiskFileUpload t_upload = new DiskFileUpload();
t_upload.setHeaderEncoding("UTF-8");
// 设置单个附件大小上限
t_upload.setSizeMax(FILE_SIZE_MAX);
//获得合同管理服务
IContractManager contractAttach = null;
// 请求解析的列表
List t_items = null;
//文件域
FileItem fileItem = null,tempItem;
//合同范本ID
String contrID="";
Contract cont = null;
// 解析请求
try {
// 请求解析成列表
t_items = t_upload.parseRequest(request);
// 循环items内容 取出 (合同范本ID 合同范本上传的附件)
for (int t_i = 0; t_i < t_items.size(); t_i++) {
tempItem = (FileItem) t_items.get(t_i);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -