package cn.itcast.oa.view.action;
import java.io.File;
import java.util.Date;
import java.util.List;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import cn.itcast.oa.base.BaseAction;
import cn.itcast.oa.domain.Application;
import cn.itcast.oa.domain.ApplicationTemplate;
import cn.itcast.oa.domain.ApproveInfo;
import cn.itcast.oa.domain.TaskView;
import cn.itcast.oa.util.HqlHelper;
import com.opensymphony.xwork2.ActionContext;
@Controller
@Scope("prototype")
public class FlowAction extends BaseAction {
private File upload; // 上传的文件
private Long applicationTemplateId;
private Long applicationId;
private String taskId;
private String comment;
private boolean approval;
private String outcome;
private String applicationStatus;
// ================================== 申请人有关
/** 起草申请(模板列表) */
public String applicationTemplateList() throws Exception {
List<ApplicationTemplate> applicationTemplateList = applicationTemplateService.findAll();
ActionContext.getContext().put("applicationTemplateList", applicationTemplateList);
return "applicationTemplateList";
}
/** 提交申请页面 */
public String submitUI() throws Exception {
return "submitUI";
}
/** 提交申请 */
public String submit() throws Exception {
// 封装申请信息
Application application = new Application();
application.setApplicant(getCurrentUser()); // 申请人,当前用户
application.setPath(saveUploadFile(upload)); // 保存上传的文件并设置路径
application.setApplicationTemplate(applicationTemplateService.getById(applicationTemplateId));
// 调用业务方法(保存申请信息,并启动流程开始流转)
applicationService.submit(application);
return "toMyApplicationList"; // 成功后转到"我的申请查询"
}
/** 我的申请查询 */
public String myApplicationList() throws Exception {
// 构建查询条件并准备分页信息
new HqlHelper(Application.class, "a")//
.addCondition("a.applicant=?", getCurrentUser())//
.addCondition(applicationTemplateId != null, "a.applicationTemplate.id=?", applicationTemplateId)//
.addCondition(StringUtils.isNotBlank(applicationStatus), "a.status=?", applicationStatus)//
.addOrder("a.applyTime", false)//
.buildPageBeanForStruts2(pageNum, applicationService);
// 准备数据
List<ApplicationTemplate> applicationTemplateList = applicationTemplateService.findAll();
ActionContext.getContext().put("applicationTemplateList", applicationTemplateList);
return "myApplicationList";
}
// ================================== 审批人有关
/** 待我审批(我的任务列表) */
public String myTaskList() throws Exception {
List<TaskView> taskViewList = applicationService.getMyTaskViewList(getCurrentUser());
ActionContext.getContext().put("taskViewList", taskViewList);
return "myTaskList";
}
/** 审批处理页面 */
public String approveUI() throws Exception {
Set<String> outcomes = applicationService.getOutcomesByTaskId(taskId);
ActionContext.getContext().put("outcomes", outcomes);
return "approveUI";
}
/** 审批处理 */
public String approve() throws Exception {
// 封装
ApproveInfo approveInfo = new ApproveInfo();
approveInfo.setComment(comment);
approveInfo.setApproval(approval);
approveInfo.setApplication(applicationService.getById(applicationId));
approveInfo.setApprover(getCurrentUser()); // 审批人,当前登录用户
approveInfo.setApproveTime(new Date()); // 当前时间
// 调用用业务方法(保存本次审批信息,并办理完任务,并维护申请的状态)
applicationService.approve(approveInfo, taskId, outcome);
return "toMyTaskList"; // 成功后转到待我审批页面
}
/** 查看流转记录 */
public String approveHistory() throws Exception {
Application application = applicationService.getById(applicationId);
ActionContext.getContext().put("approveInfos", application.getApproveInfos());
return "approveHistory";
}
// --------
public File getUpload() {
return upload;
}
public Long getApplicationTemplateId() {
return applicationTemplateId;
}
public void setApplicationTemplateId(Long applicationTemplateId) {
this.applicationTemplateId = applicationTemplateId;
}
public void setUpload(File upload) {
this.upload = upload;
}
public Long getApplicationId() {
return applicationId;
}
public void setApplicationId(Long applicationId) {
this.applicationId = applicationId;
}
public String getTaskId() {
return taskId;
}
public void setTaskId(String taskId) {
this.taskId = taskId;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public boolean isApproval() {
return approval;
}
public void setApproval(boolean approval) {
this.approval = approval;
}
public String getOutcome() {
return outcome;
}
public void setOutcome(String outcome) {
this.outcome = outcome;
}
public String getApplicationStatus() {
return applicationStatus;
}
public void setApplicationStatus(String applicationStatus) {
this.applicationStatus = applicationStatus;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于ssh的纯OA项目
共1700个文件
svn-base:1296个
class:122个
jar:67个
需积分: 11 8 下载量 118 浏览量
2017-10-29
14:36:03
上传
评论 3
收藏 57.43MB RAR 举报
温馨提示
这是一个基于ssh的项目,后台技术,前端不太好看,基础功能很不错,有树状结构,权限管理等功能,还可以论坛聊天,附带数据库。可以拿来直接用,是代码。
资源推荐
资源详情
资源评论
收起资源包目录
基于ssh的纯OA项目 (1700个子文件)
UserAction.class 6KB
UserAction.class 6KB
FlowAction.class 6KB
FlowAction.class 6KB
ApplicationServiceImpl.class 6KB
ApplicationServiceImpl.class 5KB
BaseDaoImpl.class 5KB
BaseDaoImpl.class 5KB
User.class 4KB
AnchorTag.class 4KB
AnchorTag.class 4KB
User.class 4KB
TreeViewPractice.class 4KB
ApplicationTemplateAction.class 4KB
ApplicationTemplateAction.class 4KB
TreeViewPractice.class 4KB
Installer.class 4KB
Installer.class 4KB
HqlHelper.class 4KB
RoleAction.class 4KB
RoleAction.class 4KB
HqlHelper.class 4KB
ProcessDefinitionServiceImpl.class 3KB
ProcessDefinitionServiceImpl.class 3KB
DepartmentAction.class 3KB
ForumAction.class 3KB
DepartmentAction.class 3KB
ForumAction.class 3KB
ProcessDefinitionAction.class 3KB
BaseAction.class 3KB
TopicAction.class 3KB
TopicAction.class 3KB
ProcessDefinitionAction.class 3KB
BaseAction.class 3KB
ReplyServiceImpl.class 3KB
ReplyServiceImpl.class 3KB
Application.class 3KB
Application.class 3KB
TopicServiceImpl.class 3KB
TopicServiceImpl.class 3KB
Privilege.class 3KB
Privilege.class 3KB
ForumManageAction.class 3KB
ForumManageAction.class 3KB
ForumServiceImpl.class 2KB
SpringTest.class 2KB
SpringTest.class 2KB
ForumServiceImpl.class 2KB
Forum.class 2KB
Forum.class 2KB
ReplyAction.class 2KB
ReplyAction.class 2KB
Department.class 2KB
Department.class 2KB
Topic.class 2KB
Topic.class 2KB
DepartmentUtils.class 2KB
PageBean.class 2KB
DepartmentUtils.class 2KB
InitServletContextListener.class 2KB
InitServletContextListener.class 2KB
PageBean.class 2KB
CheckPrivilegeInterceptor.class 2KB
CheckPrivilegeInterceptor.class 2KB
HqlHelperTest.class 2KB
Role.class 2KB
Role.class 2KB
Article.class 2KB
Article.class 2KB
ApproveInfo.class 2KB
ApproveInfo.class 2KB
HqlHelperTest.class 2KB
ApplicationTemplate.class 2KB
ApplicationTemplate.class 2KB
TestService.class 1KB
DepartmentServiceImpl.class 1KB
DepartmentServiceImpl.class 1KB
TestService.class 1KB
ModelDrivenBaseAction.class 1KB
ModelDrivenBaseAction.class 1KB
ApplicationTemplateServiceImpl.class 1KB
UserServiceImpl.class 1KB
UserServiceImpl.class 1KB
ApplicationTemplateServiceImpl.class 1KB
PrivilegeServiceImpl.class 1KB
PrivilegeServiceImpl.class 1KB
TestAction.class 987B
TestAction.class 987B
TaskView.class 978B
TaskView.class 978B
HomeAction.class 949B
HomeAction.class 949B
BaseDao.class 818B
BaseDao.class 818B
ApplicationService.class 719B
ApplicationService.class 719B
TopicService.class 598B
ReplyService.class 598B
TopicService.class 598B
ReplyService.class 598B
共 1700 条
- 1
- 2
- 3
- 4
- 5
- 6
- 17
资源评论
小雨滴Java
- 粉丝: 108
- 资源: 39
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功