持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情
请假提交表单控制器处理
1. LeaveFormServlet
package com.imooc.oa.controller;
import com.alibaba.fastjson.JSON;
import com.imooc.oa.entity.LeaveForm;
import com.imooc.oa.entity.User;
import com.imooc.oa.service.LeaveFormService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@WebServlet(name = "LeaveFormServlet", value = "/leave/*")
public class LeaveFormServlet extends HttpServlet {
LeaveFormService leaveFormService = new LeaveFormService();
private Logger logger = LoggerFactory.getLogger(LeaveFormServlet.class);
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uri = request.getRequestURI();
String methodName = uri.substring(uri.lastIndexOf("/") + 1);
if (methodName.equals("create")) {
this.create(request,response);
}
}
private void create(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
User user = (User) session.getAttribute("login_user");
System.out.println(user);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH");
String formType = request.getParameter("formType");
String strStartTime = request.getParameter("startTime");
String strEndtTime = request.getParameter("endTime");
String reason = request.getParameter("reason");
Map result =new HashMap<>();
try {
LeaveForm form = new LeaveForm();
form.setEmployeeId(user.getEmployeeId());
form.setFormType(Long.valueOf(formType));
form.setStartTime(sdf.parse(strStartTime));
form.setEndTime(sdf.parse(strEndtTime));
form.setReason(reason);
form.setCreateTime(new Date());
leaveFormService.createLeaveForm(form);
result.put("code",0);
result.put("message","succee");
} catch (ParseException e) {
logger.error("异常",e);
result.put("code",e.getClass().getSimpleName());
result.put("message",e.getMessage());
}
String json = JSON.toJSONString(result);
response.getWriter().println(json);
}
}
2.新增form表单
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>请假申请</title>
<link rel="stylesheet" href="/resources/layui/css/layui.css">
<style>
/*表单容器*/
.ns-container {
position: absolute;
width: 500px;
height: 450px;
top: 150px;
left: 50%;
margin-left: -250px;
padding: 20px;
box-sizing: border-box;
border: 1px solid #cccccc;
}
</style>
</head>
<body>
<div class="layui-row">
<blockquote class="layui-elem-quote">
<h2>请假申请</h2>
</blockquote>
<table id="grdNoticeList" lay-filter="grdNoticeList"></table>
</div>
<div class="ns-container">
<h1 style="text-align: center;margin-bottom: 20px">请假申请单</h1>
<form class="layui-form">
<!--基本信息-->
<div class="layui-form-item">
<label class="layui-form-label">部门</label>
<div class="layui-input-block">
<div class="layui-col-md12" style="padding-top: 10px;">
研发部
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">申请人</label>
<div class="layui-input-block">
<div class="layui-col-md12" style="padding-top: 10px;">
齐紫陌[部门经理]
</div>
</div>
</div>
<!--请假类型下拉框-->
<div class="layui-form-item">
<label class="layui-form-label">请假类别</label>
<div class="layui-input-block layui-col-space5">
<select name="formType" lay-verify="required" lay-filter="cityCode">
<option value="1">事假</option>
<option value="2">病假</option>
<option value="3">工伤假</option>
<option value="4">婚嫁</option>
<option value="5">产假</option>
<option value="6">丧假</option>
</select>
</div>
</div>
<!--请假时长日期选择框-->
<div class="layui-form-item">
<label class="layui-form-label">请假时长</label>
<div class="layui-input-block layui-col-space5">
<input name="leaveRange" type="text" class="layui-input" id="daterange" placeholder=" - ">
<input id="startTime" name="startTime" type="hidden">
<input id="endTime" name="endTime" type="hidden">
</div>
</div>
<!--请假事由-->
<div class="layui-form-item">
<label class="layui-form-label">请假事由</label>
<div class="layui-input-block layui-col-space5">
<input name="reason" type="text" lay-verify="required|mobile" placeholder="" autocomplete="off" class="layui-input">
</div>
</div>
<!--提交按钮-->
<div class="layui-form-item " style="text-align: center">
<button class="layui-btn" type="button" lay-submit lay-filter="sub">立即申请</button>
</div>
</form>
</div>
<script src="/resources/layui/layui.js"></script>
<script src="/resources/sweetalert2.all.min.js"></script>
<script>
var layDate = layui.laydate; //Layui日期选择框JS对象
var layForm = layui.form; //layui表单对象
var $ = layui.$; //jQuery对象
//日期时间范围
layDate.render({
elem: '#daterange'
,type: 'datetime'
,range: true
,format: 'yyyy年M月d日H时'
,done: function(value, start, end){
//选择日期后出发的时间,设置startTime与endTime隐藏域
var startTime = start.year + "-" + start.month + "-" + start.date + "-" + start.hours;
var endTime = end.year + "-" + end.month + "-" + end.date + "-" + end.hours;
console.info("请假开始时间",startTime);
$("#startTime").val(startTime);
console.info("请假结束时间",endTime);
$("#endTime").val(endTime);
}
});
//表单提交时间
layForm.on('submit(sub)', function(data){
console.info("向服务器提交的表单数据",data.field);
$.post("/leave/create",data.field,function (json) {
console.info(json);
if(json.code == "0"){
/*SweetAlert2确定对话框*/
swal({
type: 'success',
html: "<h2>请假单已提交,等待上级审批</h2>",
confirmButtonText: "确定"
}).then(function (result) {
window.location.href="/forward/notice";
});
}else{
swal({
type: 'warning',
html: "<h2>" + json.message + "</h2>",
confirmButtonText: "确定"
});
}
},"json");
return false;
});
</script>
</body>
</html>