初步进行泛微OA开发记录--在调休申请时判断是否加班没有加班时间的话不允许提交

来源:互联网 发布:十年数据库管理员 编辑:程序博客网 时间:2024/05/01 02:29

     需求如下:现在公司的出厂申请流程里面,有调休和公出两个方式,人力要求,当员工选择调休时,判断这个员工近两个月是否加过班,如果没有的话,就直接不允许他进行提交。为了完成这个任务,需要先创建两个JSP文件:GetData119.jsp,IncludeWorkflow119.jsp,这里的119指的是工作流程ID。顾名思义,前面一个JSP文件是用来从数据库中取数据,然后反馈给第二个JSP的,再在数据库中将IncludeWorkflow119.jsp添加到出厂流程的customerpage里面,就可以使得每次打开该页面时,都会执行IncludeWorkflow119.jsp了。

部分代码与说明如下:

<%/* 公出单申请流程   先获取相关流程与页面信息*/int requestid = Util.getIntValue(request.getParameter("requestid"));//请求idint workflowid = Util.getIntValue(request.getParameter("workflowid"));//流程idint formid = Util.getIntValue(request.getParameter("formid"));//表单idint isbill = Util.getIntValue(request.getParameter("isbill"));//表单类型,1单据,0表单int nodeid = Util.getIntValue(request.getParameter("nodeid"));//流程的节点idString nodeType="0";if(requestid!=-1){nodeType=requestCI.getRequestCurrentNodeType(requestid+"");}%>
<script>jQuery(function(){checkCustomize=function(){//配置字段var sqrqNum=""; //申请日期   在数据库中存储的流程表单的字段的ID号,可以通过F12查找,也可以直接去看数据库var ksrqNum=""; //开始日期//时间变量给值var sqrq1="";   //用户填写的时间信息var ksrq1="";var isr="";var dt1="";//申请日期var dt2="";//开始日期var strs="";var strs1="";var strDate1=""; //申请月份var strDate2=""; //开始月份var strDate=""; var strDatey1=""; var strDatey2="";//出厂类型var cclx="";//判断出厂类型是否为调休//申请人var GH="";              if("<%=workflowid%>"==119){//集团公出单//配置字段 sqrqNum="6980"; //申请日期 ksrqNum="6982"; //开始日期//时间变量给值 sqrq1=jQuery("#field"+sqrqNum); ksrq1=jQuery("#field"+ksrqNum); isr=true;if(sqrq1.val()!=""&&ksrq1.val()!=""){//进行时间判断  dt1=sqrq1.val();//申请日期 dt2=ksrq1.val();//开始日期 strs=dt1.split("-"); strs1=dt2.split("-"); strDate1=strs[1]; //申请月份 strDate2=strs1[1]; //开始月份 strDate=strs[2];  strDatey1=strs[0];  strDatey2=strs1[0];      if(strDate > "05"){//申请年份等于开始年份if(strDatey1==strDatey2){if(strDate2 < strDate1){            if(strDate1!="10"&&strDate1!="01"&&strDate1!="02"&&strDate1!="04"&&strDate1!="05"&&strDate1!="06")//除五一 十一  元旦  春节 清明节外其他时间段限定于3号前补单{alert("请在5号前补单!");isr=false;return false;}if(strDate1=="05"&&strDate > "08")//五一补单时间限定于8号前{alert("请在8号前补单!");isr=false;return false;}if(strDate1=="06"&&strDate > "06")//6月份补单时间限定于6号前 6月份5号星期天{alert("请在6号前补单!");isr=false;return false;}if(strDate1=="10"&&strDate > "08")//十一补单时间限定于7号前{alert("请在8号前补单!");isr=false;return false;}if(strDate1=="04"&&strDate > "08")//清明节补单时间限定于8号前{alert("请在8号前补单!");isr=false;return false;}if(strDate1=="02"&&strDate > "05")//春节补单限定于18号前{alert("请在05号前补单!");isr=false;return false;}    }}//申请年份大于开始年份if(strDatey1>strDatey2&&strDate1!="01"&&strDate2!="12"){alert("请在5号前补单!");isr=false;return false;}        }}//申请年份大于开始年份  元旦补单日期控制在8号前if(strDatey1>strDatey2&&strDate1=="01"&&strDate2=="12"&&strDate > "08"){alert("请在8号前补单!");isr=false;return false;}cclx=jQuery("#field6976");GH=jQuery("#field6977");if(cclx.val()=="1"){   //如果选择的出厂类型是调休//判断是否填写过加班单jQuery.ajax({url:"GetData119.jsp",  //调用获取数据的文件async:false,type:"post",data:{"operation":"GETSTATE","GH":GH.val()},  //执行GETSTATE操作,并且获取GH(工号)信息success:function(data){//alert(data);eval("var obj = "+data);if(obj.da.length<=0){     alert("近两个月内无加班单,不允许调休!");isr=false;                      }                       }});         }return isr;    }}  </script>

GetData119.jsp页面的相关代码如下:

<%request.setCharacterEncoding("utf-8");//response.setContentType("text/html;charset=gbk");String operation = Util.null2String(request.getParameter("operation"));   //获取操作信息String userid=Util.null2String(request.getParameter("userid"));           String json=new String();User user=HrmUserVarify.getUser(request,response);BaseBean bb = new BaseBean();if(operation.equals("GETSTATE")){JSONObject jo=new JSONObject();JSONArray ja=new JSONArray();String GH=Util.null2String(request.getParameter("GH"));String regh="";String runsql4 = " SELECT GH,JBRQ,months_between(sysdate,to_date(JBRQ,'yyyy-mm-dd')) FROM ( "+" select GH,JBRQ from FORMTABLE_MAIN_76_dt1 "+" UNION ALL "+" select  GH,JBRQ  from FORMTABLE_MAIN_86_dt1 "+" UNION ALL "+" select  GH,JBRQ  from FORMTABLE_MAIN_140_dt1 "+" UNION ALL "+" select  GH,JBRQ  from FORMTABLE_MAIN_155_dt1 "+" UNION ALL "+" select  GH,JBRQ  from FORMTABLE_MAIN_167_dt1 "+" UNION ALL "+" select  GH,JBRQ  from FORMTABLE_MAIN_193_dt1 "+" UNION ALL "+" select  GH,JBRQ  from FORMTABLE_MAIN_370_dt1 "+" ) "+" WHERE months_between(sysdate,to_date(JBRQ,'yyyy-mm-dd'))<=2 AND GH = '" + GH+"'";  //查询人员的加班信息bb.writeLog("runsql4:"+runsql4);rs1.execute(runsql4);while(rs1.next()){regh=Util.null2String(rs1.getString("GH"));}//JSONObject jo=new JSONObject();jo.put("da", regh);json=jo.toString();}out.print(json);%>



0 0
原创粉丝点击