相关文章
activiti使用心得(1) spring 集成activiti
activiti使用心得(2) activiti的web应用 请假审批为例,bpmn文件的定义
activiti使用心得(3) 请假申请单业务
activiti使用心得(4) 请假申请单流程启动,任务列表、审批
activiti使用心得(5) activiti 对表单的使用说明
activiti使用心得(6) 请假申请单查看备注、审批结束
请假申请单表结构
CREATE TABLE `t_sys_vacation` (
`id` varchar(80) NOT NULL,
`work_days` int(4) DEFAULT NULL COMMENT '休假的工作日天数',
`begin_date` varchar(20) DEFAULT NULL COMMENT '休假开始日期',
`end_date` varchar(20) DEFAULT NULL COMMENT '休假截止日期',
`vacation_type` varchar(2) DEFAULT NULL COMMENT '休假类型',
`reason` varchar(500) DEFAULT NULL COMMENT '休假原因',
`process_instance_id` varchar(50) DEFAULT NULL COMMENT '对应的工作流实例ID',
`user_id` varchar(80) DEFAULT NULL COMMENT '用户ID',
`create_time` varchar(50) DEFAULT NULL,
`status` varchar(1) DEFAULT NULL COMMENT '状态 0 初始化 1 提交申请 2审批通过 3审批拒绝',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
请假申请单Controller
@Controller
@RequestMapping(value="/vacation")
public class VacationController {
//请假申请单service
VacationService vacationService;
// 用户信息
UserService userService;
/**
* 请假申请单列表
* @param Vacation
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/mylist", produces = "application/json;charset=utf-8")
public Result<NctpPage<Vacation>> mylist(Vacation Vacation, HttpServletRequest request) {
String currentPage = request.getParameter("currentPage");
String pageSize = request.getParameter("pageSize");
return vacationService.mylist(Vacation, currentPage, pageSize);
}
/**
* 请假申请单提交,启动审批流程,此处目前没有做好,应该把启动流程提取出来,后期优化
* @param vacationForm
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/commit", produces = "application/json;charset=utf-8")
public Result<BussinessResult> commitAndProcessDeploy(VacationForm vacationForm, HttpServletRequest request) {
String userKey = SessionUtils.getUserkey(request);
User user = userService.findById(userKey);
Result<BussinessResult> br = new Result<>();
vacationForm.setUserName(user.getRealname());
vacationForm.setUserId(user.getUsername());
vacationService.startVacation(vacationForm);
return br;
}
/**
* 请假申请单 保存
* @param vacationForm
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/add", produces = "application/json;charset=utf-8")
public Result<VacationForm> add(VacationForm vacationForm, HttpServletRequest request) {
// ProcessInstance process = vacationService.startVacation(vacationForm);
String userKey = SessionUtils.getUserkey(request);
User user = userService.findById(userKey);
Result<VacationForm> br = new Result<>();
vacationForm.setUserId(user.getUsername());
int res = vacationService.add(vacationForm);
br.setCode(res > 0 ? "0" : "00001");
br.setMessage(res > 0 ? "内容保存成功" : "内容保存失败");
br.setResult(vacationForm);
return br;
}
@Autowired
public void setVacationService(VacationService vacationService) {
this.vacationService = vacationService;
}
@Autowired
public void setUserService(UserService userService) {
this.userService = userService;
}
}
以上代码中 VacationService 为业务代码,UserService 未查询用户登录信息使用的,跟业务相关的东西,可以自行补齐