package com.lily.oa.action.apply;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import com.lily.oa.base.BaseAction;
import com.lily.oa.base.BaseVO;
import com.lily.oa.base.UserInfo;
import com.lily.oa.form.apply.InformalForm;
import com.lily.oa.util.DocumentNumber;
import com.lily.oa.util.Page;
import com.lily.oa.vo.apply.Informal;
import com.lily.oa.vo.apply.InformalAccessary;
import com.lily.oa.vo.apply.InformalDetail;
import com.lily.oa.vo.apply.InformalType;
import com.lily.oa.vo.approve.Flow;
import com.lily.oa.vo.calendar.Arrange;
import com.lily.oa.vo.manpower.Department;
import com.lily.oa.vo.manpower.Employee;
import com.lily.oa.base.ServiceConstant;
import com.lily.oa.dao.apply.IApplyDAO;
import com.lily.oa.dao.apply.InformalTypeDao;
import com.lily.oa.dao.approve.IApproveDAO;
public class InformalAction extends BaseAction {
//到领款登记页面
public ActionForward toaddgetmoney(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
//通过Session对象获得登录人然后到登记单页面取
UserInfo user = (UserInfo) request.getSession().getAttribute("user") ;
IApplyDAO applydao = (IApplyDAO)getDAO(ServiceConstant.APPLYDAO);
//取得可领款登记页面传的ID
Integer id = new Integer(request.getParameter("oid"));
Informal infor = (Informal)applydao.findById(Informal.class, id);
request.setAttribute("infor", infor);
return mapping.findForward("writeapply");
}
//领款登记
public ActionForward addgetmoney(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
IApplyDAO iappdao = (IApplyDAO)getDAO(ServiceConstant.APPLYDAO);
InformalForm inforform = (InformalForm)form;
Integer id = new Integer(inforform.getOid());
Informal inforvo = (Informal)iappdao.findById(Informal.class, id);
//自动生成登记时间
Date date = new Date();
String datetime = date.toLocaleString();
inforvo.setBookDate(datetime);
float acount = 0;
for(int i=0;i<inforform.getBookAmount().length;i++){
Integer deid = new Integer(request.getParameter("parentid"));
acount += inforform.getBookAmount()[i];
}
//把得到的实报金额的总金额加到主表中去
inforvo.setBookAmount(acount);
//把标示符"Y"【审批通过(已领款)】加到数据库中去
inforvo.setStatus("Y");
iappdao.update(inforvo);
for(int i=0;i<inforform.getBookAmount().length;i++){
Integer deid = new Integer(request.getParameter("parentid"));
DetachedCriteria d = DetachedCriteria.forClass(InformalDetail.class);
d.createAlias("informal", "i").add(Restrictions.eq("i.oid", deid));
InformalDetail detail = (InformalDetail)iappdao.findByDetached(d).get(0);
detail.setAmount(inforform.getBookAmount()[i]);
detail.setInformal(inforvo);
iappdao.update(detail);
}
return mapping.findForward("getmoney");
}
//到添加报销申请单页面
public ActionForward toaddinformal(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
//通过Session对象获得登录人然后到登记单页面取
UserInfo user = (UserInfo) request.getSession().getAttribute("user") ;
InformalType infortypevo = new InformalType();
IApplyDAO applydao = (IApplyDAO)getDAO(ServiceConstant.APPLYDAO);
List depts = applydao.getAllDept();
//报销申请单中第一次通过部门初始化申请人名单
Department dept = (Department) depts.get(0);
//通过离线查询查找第一个部门的所有员工
DetachedCriteria dc = DetachedCriteria.forClass(Employee.class);
dc.createAlias("depart", "d").add(Restrictions.eq("d.oid", dept.getOid()));
//屏蔽相同项
dc.setResultTransformer(dc.DISTINCT_ROOT_ENTITY);
List emps = applydao.findByDetached(dc);
DetachedCriteria dca = DetachedCriteria.forClass(Flow.class);
dca.createAlias("doctype", "t").add(Restrictions.eq("t.oid", 6));
List flows = applydao.findByDetached(dca);
//添加报销类别到申请单下拉框显示
DetachedCriteria dc2 = DetachedCriteria.forClass(InformalType.class);
dc2.add(Restrictions.eq("isActice", "有效"));
List types = applydao.findByDetached(dc2);
request.setAttribute("types", types);
//添加对应计划到申请单下拉框显示
List list1 = applydao.getAllArrange();
request.setAttribute("plans", list1);
request.setAttribute("depts", depts);
request.setAttribute("emps", emps);
request.setAttribute("flows", flows);
return mapping.findForward("addinfo");
}
//添加报销申请单
public ActionForward addinformal(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
IApplyDAO applydao = (IApplyDAO)getDAO(ServiceConstant.APPLYDAO);
InformalForm infoform = (InformalForm)form;
Informal info = new Informal();
try {
org.apache.commons.beanutils.BeanUtils.copyProperties(info, infoform);
} catch (Exception e) {
e.printStackTrace();
}
//自动生成的报销申请单编号
DocumentNumber docnumber = new DocumentNumber();
String oid = docnumber.getFileName();
String dan = "BXD-"+oid;
//自动生成申请时间
Date date = new Date();
String datetime = date.toLocaleString();
info.setCreateDate(datetime);
info.setDocNo(dan);
//查找选中的部门的ID加入到info中
Department dept = (Department)applydao.findById(Department.class, infoform.getDeptid());
info.setDept(dept);
//查找选中的员工的ID加入到info中
Employee emp = (Employee)applydao.findById(Employee.class, infoform.getProposer());
info.setEmp(emp);
//查找选中的审批流程的ID加入到info中
Flow flow = (Flow)applydao.findById(Flow.class, infoform.getFlowid());
info.setFlow(flow);
//通过循环添加多个明细
float acount = 0;
for(int i=0;i<infoform.getApplyAmount().length;i++){
InformalType type = (InformalType)applydao.findById(InformalType.class, infoform.getTypeid()[i]);
Arrange plan = (Arrange)applydao.findById(Arrange.class, infoform.getPlanid()[i]);
InformalDetail detail = new InformalDetail();
detail.setApplyAmount(infoform.getApplyAmount()[i]);
acount += infoform.getApplyAmount()[i];
detail.setInformaltype(type);
detail.setInformalplan(plan);
detail.setInformal(info);
info.getInformalDetail().add(detail);
}
//计算总钱数
info.setApplyAmount(acount);
//***************************** 上传控制 *****************************//
InformalForm accform = (InformalForm) form;
InformalAccessary accvo = new InformalAccessary();
//把附件的描述加到数据库中去
accvo.setDescription(accform.getDescription());
FormFile file = accform.getFile();
if(file!=null){
String filename = file.getFileName();
//accvo.setContent(filename);//把文件名保存到数据库中去(不需要,保存的是文件路径)
try {
InputStream is = file.getInputStream();
//设置存放文件的路径
String store_path = servlet.getServletContext().getRealPath("/images/upload");
Outp
没有合适的资源?快使用搜索试试~ 我知道了~
这是一套OA办公自动化软件
共1398个文件
gif:442个
java:154个
class:154个
5星 · 超过95%的资源 需积分: 8 33 下载量 48 浏览量
2008-11-08
20:00:54
上传
评论
收藏 2.6MB RAR 举报
温馨提示
这是用流行开源框架做成的,市面上难得一见的完整的OA软件源代码
资源详情
资源评论
资源推荐
收起资源包目录
这是一套OA办公自动化软件 (1398个子文件)
InformalAction.class 20KB
CalendarAction.class 15KB
EmployeeAction.class 14KB
AttendRecordAction.class 12KB
EmployeeForm.class 11KB
OfficeApplyAction.class 10KB
OfficeThingsAction.class 9KB
EmployeeBaseForm.class 9KB
AccountAction.class 9KB
ExtraWorkAction.class 8KB
NodeAction.class 8KB
DepartAction.class 8KB
informationAction.class 7KB
OfficePurchaseAction.class 7KB
LeaveAction.class 7KB
Employee.class 7KB
CardAction.class 6KB
OfficeThingsDAO.class 6KB
RoleAction.class 6KB
ApplyDAO.class 6KB
InformalForm.class 6KB
FunctionAction.class 6KB
EmployeeDAO.class 6KB
Department.class 6KB
ApprovalAction.class 5KB
Informal.class 5KB
FormatUtil.class 5KB
LeaveDAO.class 5KB
ExtraWorkDAO.class 5KB
ExtraWork.class 5KB
OfficeApplyForm.class 5KB
ApproveDAO.class 4KB
infoTypeAction.class 4KB
PageTag.class 4KB
OARequestProcessor.class 4KB
ExtraWorkForm.class 4KB
WorkSettingAction.class 4KB
Contact.class 4KB
DutySettingAction.class 4KB
DateUtil.class 4KB
InformalTypeAction.class 4KB
Leave.class 4KB
CardTypeAction.class 4KB
FamillyInfo.class 4KB
OfficeApply.class 4KB
OfficeTypeAction.class 4KB
Arrange.class 4KB
arrangeform.class 4KB
Information.class 4KB
ContactForm.class 4KB
InformationForm.class 4KB
DepartForm.class 4KB
OfficePurchaseForm.class 3KB
AttendRecordForm.class 3KB
Node.class 3KB
OfficeThingsForm.class 3KB
Removeaction.class 3KB
Approval.class 3KB
LeaveTypeAction.class 3KB
Flow.class 3KB
OfficeThings.class 3KB
Exprience.class 3KB
HrValues.class 3KB
AccountAction.class 3KB
RepeatMode.class 3KB
LeaveForm.class 3KB
OfficePurchase.class 3KB
FunctionDAO.class 3KB
InfoTypeForm.class 3KB
AdjustmentForm.class 3KB
JobInfo.class 3KB
FamillyInfoForm.class 3KB
InformalDetail.class 3KB
Account.class 3KB
ApprovalForm.class 3KB
PotenceInitialize.class 3KB
InfoType.class 2KB
ExprienceForm.class 2KB
BaseAction.class 2KB
Adjustment.class 2KB
repetmodeform.class 2KB
OfficePurchaseDetail.class 2KB
DutySettingForm.class 2KB
JobInfoForm.class 2KB
NodeForm.class 2KB
BaseDAO.class 2KB
Role.class 2KB
Function.class 2KB
BaseVO.class 2KB
WorkSettingForm.class 2KB
StringUtil.class 2KB
CompareTime.class 2KB
OfficeApplyDetail.class 2KB
DutySetting.class 2KB
TimeForm.class 2KB
AccountForm.class 2KB
InformalAccessary.class 2KB
AttendRecord.class 2KB
DocType.class 2KB
UserInfo.class 2KB
共 1398 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14
shiwenliang
- 粉丝: 5
- 资源: 62
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1