My97DatePicker请假日期后端判断已选日期不可再选

对于后台进行请假日期验证,如果有重复可以判断,如法提交

 1 public String doAddLeaves(){
 2         try {
 3             TbUser tbUser=(TbUser) getFromSession("loginUser");
 4             leaveList=leaveService.getLeavesByUsername(tbUser.getId());//获取当前用户所有请假条
 5             int row = 0;
 6             //System.err.println("======="+tbLeave.getBeginLeave()+","+tbLeave.getEndLeave());
 7             for (TbLeave leaves : leaveList) {
 8                 if (tbLeave.getEndLeave().compareTo(leaves.getBeginLeave())<=0
 9                         || tbLeave.getBeginLeave().compareTo(leaves.getEndLeave())>=0 ) {
10
11                     //System.err.println("1..."+tbLeave.getBeginLeave()+","+tbLeave.getEndLeave());
12                     //System.err.println("2..."+leaves.getBeginLeave()+","+leaves.getEndLeave());
13                     row=0;
14
15                 }else{
16                     row=1;
17                     break;
18                 }
19             }
20             if (tbLeave.getEndLeave().compareTo(tbLeave.getBeginLeave())<0) {
21                 log.info("fail!!!");
22                 resultMap.put("retcode", RetCode.FAIL);
23                 resultMap.put("retmsg", "请假时间需要大于开始时间");
24             }else {
25
26                 if (row==0) {
27
28                     leaveService.addLeaves(tbLeave);
29                     //putToSession("leave", leave)
30                     log.info("success!!!");
31                     resultMap.put("retcode", RetCode.SUCCESS);
32                     resultMap.put("retmsg", "保存成功");
33                 }else{
34                     log.info("fail!!!");
35                     resultMap.put("retcode", RetCode.FAIL);
36                     resultMap.put("retmsg", "请假时间存在冲突");
37                 }
38             }
39         } catch (Exception e) {
40             e.printStackTrace();
41             log.error("method addEmails bug:{}",e);
42             resultMap.put("retcode", RetCode.UNKOWN_WRONG);
43             resultMap.put("retmsg", "未知错误,请重试或联系管理员");
44         }
45         return SUCCESS;
46     }

action

 1 <tr>
 2                         <td align="right" width="30%">开始时间:</td>
 3                         <td align="left"><input type="text" name="tbLeave.beginLeave" readOnly="readonly"
 4                             id="beginLeave"
 5                             onClick="WdatePicker({minDate:‘%y-%M-{%d+1}‘,maxDate:‘#F{$dp.$D(\‘endLeave\‘)}‘,onpicked:function(){endLeave.click();},disabledDays:[0,6]})" class="Wdate"  /><br/>
 6                         </td>
 7                     </tr><br/>
 8                     <tr>
 9                         <td align="right" width="30%">结束时间:</td>
10                         <td align="left"><input type="text" name="tbLeave.endLeave" readOnly="readonly"
11                             id="endLeave" onClick="WdatePicker({errDealMode:3,minDate:‘#F{$dp.$D(\‘beginLeave\‘)}‘,disabledDays:[0,6]})" class="Wdate"/><br/></td>
12                     </tr>

jsp

 1 <script type="text/javascript">
 2     $(function() {
 3
 4         $("#loginForm").validate({
 5             rules : {
 6                 "tbLeave.beginLeave" : {
 7                     required : true,
 8                 },
 9                 "tbLeave.endLeave" : {
10                     required : true,
11                     /* remote: {
12                         url: "${ctx}/leave/beginTOEnd.action",
13                          type: "post",
14                          dataType: "json",
15                         data: {
16                             "tbLeave.beginLeave": function(){
17                                 return $("#beginLeave").val()
18                             },
19                             "tbLeave.endLeave": function(){
20                                 return $("#endLeave").val();
21                             }
22                         }
23                     } */
24                 },
25                 /* "tbLeave.reason" : {
26                     required : true,
27                 } */
28             },
29             messages : {
30                 "tbLeave.beginLeave" : {
31                     required : "输入开始请假日期",
32                 },
33                 "tbLeave.endLeave" : {
34                     required : "输入结束请假日期",
35                     //remote:"*请假日期不能重复"
36                 },
37                 /* "tbLeave.reason" : {
38                     required : "输入请假原因",
39                 } */
40
41             }
42         });
43
44
45
46         $("#sendLeave").click(function() {
47             if ($("#loginForm").valid()) {
48                 if(confirm("是否要提交吗?")){
49                 var url = "${ctx}/leave/doAddLeaves.action";
50                 $.post(
51                     url,
52                         {
53                             "tbLeave.isdelete" : $("#isdelete").val(),
54                             "tbLeave.read" : $("#read").val(),
55                             "tbLeave.tbUserByUserId.id" : $("#isid").val(),
56                             "tbLeave.beginLeave" : $("#beginLeave").val(),
57                             "tbLeave.endLeave" : $("#endLeave").val(),
58                             "tbLeave.reason" : $("#reason").val()
59                         },
60                     function(data) {
61                         if (data.retcode == "0") {
62                         alert("提交成功");
63                             window.location.href = "${ctx}/leave/findAllLeaves.action";
64                         } else {
65                             alert(data.retmsg);
66                         }
67                     });
68                 }
69             }
70         });
71     });
72 </script>

script

原文地址:https://www.cnblogs.com/TripMaster/p/11398399.html

时间: 2024-10-12 17:56:27

My97DatePicker请假日期后端判断已选日期不可再选的相关文章

My97DatePicker关于请假日期前后端判断已选日期不可再选

关于My97DatePicker关于请假日期前后端判断已选日期不可再选,不过有个小bug(关于在数据库中已经存在 比如:请假12-15,17-18这几天,但我又请了11号 16号,在前端页面没有提示 其实已经重复了,不能再请,我写在了后台页面,可查看连接https://www.cnblogs.com/TripMaster/p/11398399.html),后期会修改. 1 <tr> 2 <td align="right" width="30%"&g

Js获取当前日期时间+日期印证+判断闰年+日期的天数差+日期格式化+JS判断某年某月有多少天

Js获取当前日期时间+日期验证+判断闰年+日期的天数差+日期格式化+JS判断某年某月有多少天 字符串转日期型+Js当前日期时间+日期验证+判断闰年+日期的天数差+日期格式化+日期所在年的第几周 日期时间脚本库方法列表Date.prototype.isLeapYear 判断闰年Date.prototype.Format 日期格式化Date.prototype.DateAdd 日期计算Date.prototype.DateDiff 比较日期差Date.prototype.toString 日期转字符

JS多选日期

项目需要一个可以选择多个日期的日期选择框,从网上找到一个单选的选择框源码 (http://blog.5d.cn/user2/samuel/200503/61881.html),修改成可以多选. 使用方法: 调用方法很简单: <input type="text" name="dateBegin" onclick="calendarShow(this)" readonly> 或者用button调用也行 <input type=&qu

js多选日期控件

js多选日期控件 详情请见:http://www.lovewebgames.com/jsmodule/calendar.html 它的github地址:https://github.com/tianxiangbing/calendar calendar js日历控件 用法 1 <input type="text" id="calendar" value="2015-04-15"/> 2 <script src="../

如何判断两个日期在一周内

如何判断两个日期在一周内,首先,需要搞清楚一周内到底是什么含义,国内通常是以周一作为每周的第一天,而西方普遍以周日作为每周的第一天. 以下,我们以西方的标准来处理这个问题. 常见的日期结构: struct DateTime { int year; int month; int day; int weekday; //days since Sunday - [0, 6] int hour; int minute; int second; }; 上述结构中与周相关的参数只有weekday,应该设法利

李洪强漫谈iOS开发[C语言-043]-判断较早日期

李洪强漫谈iOS开发[C语言-043]-判断较早日期

java导入excel时处理日期格式(已验证ok)

在Excel中的日期格式,比如2009-12-24将其转化为数字格式时变成了40171,在用java处理的时候,读取的也将是40171.如果使用POI处理Excel中的日期类型的单元格时,如果仅仅是判断它是否为日期类型的话,最终会以NUMERIC类型来处理.正确的处理方法是先判断单元格的类型是否则NUMERIC类型,然后再判断单元格是否为日期格式,如果是的话, 创建一个日期格式,再将单元格的内容以这个日期格式显示出来.如果单元格不是日期格式,那么则直接得到NUMERIC的值就行了.具体代码如下:

javascript 判断两个日期之差的示例代码

javascript 判断两个日期之差的示例代码 <!--NEWSZW_HZH_BEGIN-->日期差我们需要像php中一样把如2015-08-30这种转换成秒之后再利用两个日期的秒数进行相减之后再加起判断就可以了,如果判断日期相等就简单多了在文章最后有例子说明. 例子1,日期之差函数 function better_time(strDateStart,strDateEnd){   var strSeparator = "-"; //日期分隔符   var strDateA

ORACLE判断两个日期间隔几个工作日

CreateTime--2017年9月7日17:14:56 Author:Marydon 方法:使用存储过程 /** * 判断两个日期间隔几个工作日 */ CREATE OR REPLACE FUNCTION "FUN_BETWEENDAYS"(start_dt date, end_dt date) RETURN INT IS t_days INT; BEGIN SELECT (TRUNC(end_dt - start_dt) - ((CASE WHEN (8 - to_number(