| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039 |
- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
- <%@include file="/context/mytags.jsp"%>
- <t:base type="jquery,easyui,tools,DatePicker"></t:base>
- <!-- <title>员工排班上报</title> -->
-
- <div class="easyui-layout" fit="true">
- <input id="tempTime" name="tempTime" type="hidden" value="${yearmonth}"/>
- <input id="calendaridStr" name="calendaridStr" type="hidden" value="${calendaridStr}"/>
- <input id="specialCalendar" name="specialCalendar" type="hidden" value="${specialCalendar}"/>
- <input id="pid" name="pid" type="hidden" value="${pid}"/>
- <div region="center" style="padding:0px;border:0px;overflow: auto;">
- <t:datagrid name="projarrangeDetailList" checkbox="false" fitColumns="false" title="员工排班上报" actionUrl="projarrangeDetailController.do?datagridAll&yearmonth=${yearmonth}&pid=${pid}&usernamesearch=${usernamesearch}" idField="id" fit="true" pagination="false" queryMode="group">
- <t:dgCol title="主键" field="id" hidden="true" queryMode="single" width="120"></t:dgCol>
- <t:dgCol title="项目排班总揽表ID" field="projarrangeGeneralid" hidden="true" query="false" width="120"></t:dgCol>
- <t:dgCol title="项目id" field="pid" hidden="true" query="false" width="120"></t:dgCol>
- <t:dgCol title="月度" field="yearmonth" hidden="true" queryMode="single" width="120"></t:dgCol>
- <%-- <t:dgCol title="项目岗位" sortable="false" hidden="true" field="pjtPostId" frozenColumn="true" dictionary="t_bus_project_post_detail,id,ptj_post_name, and delete_flag = '0' and pid='${pid}' " width="120"></t:dgCol>
- <t:dgCol title="员工姓名" sortable="false" hidden="true" field="userid" frozenColumn="true" queryMode="single" dictionary="t_s_base_user,id,realname" width="120"></t:dgCol>
- --%>
- <t:dgCol title="项目岗位" sortable="false" hidden="true" field="pjtPostId" frozenColumn="true" width="120"></t:dgCol>
- <t:dgCol title="员工姓名" sortable="false" hidden="true" field="userid" frozenColumn="true" queryMode="single" width="120"></t:dgCol><t:dgCol title="项目岗位" sortable="false" field="pjtPostName" frozenColumn="true" width="120"></t:dgCol>
- <t:dgCol title="员工姓名" sortable="false" field="userName" query="false" frozenColumn="true" queryMode="single" width="120"></t:dgCol>
- <!-- 遍历动态列,将动态列添加至此 -->
- <c:forEach items="${titlelist}" var="temp">
- <%-- <c:if test="${fn:contains(temp.title,'workday')}">
- <t:dgCol title="${fn:substringBefore(temp.title,'-')}" field="${temp.field}" extendParams="editor:'combobox'" dictionary="t_bus_arrange_duty,id,duty_name, and delete_flag <> 1 and status = '0'"></t:dgCol>
- </c:if>
- <c:if test="${fn:contains(temp.title,'weekend')}">
- <t:dgCol title="${fn:substringBefore(temp.title,'-')}" field="${temp.field}" extendParams="editor:'combobox'" dictionary="t_bus_arrange_duty,id,duty_name, and delete_flag <> 1 and status = '0'"></t:dgCol>
- </c:if> --%>
- <t:dgCol title="${temp.title}" sortable="false" width="120" field="${temp.field}" extendParams="editor:'combobox'" dictionary="t_bus_arrange_duty,id,duty_name, and delete_flag <> '1' and ( pid is null or pid='${pid}' ) order by create_date"></t:dgCol>
- </c:forEach>
- <t:dgCol title="上班天数(日)" sortable="false" field="workingDays" style="text-align: right;" queryMode="single" width="120"></t:dgCol>
- <t:dgCol title="超时加班(小时)" sortable="false" field="timeOutOvertimeHours" style="text-align: right;" queryMode="single" width="120"></t:dgCol>
- <t:dgCol title="国定加班(小时)" sortable="false" field="countryOvertimeHours" style="text-align: right;" queryMode="single" width="120"></t:dgCol>
- <t:dgCol title="值班天数(日)" sortable="false" field="ondutyDays" style="text-align: right;" queryMode="single" width="120"></t:dgCol>
- <t:dgCol title="备注" sortable="false" field="remark" queryMode="single" extendParams="editor:'text'" width="120"></t:dgCol>
- <t:dgCol title="创建人名称" field="createName" hidden="true" queryMode="single" width="120"></t:dgCol>
- <t:dgCol title="创建人登录名称" field="createBy" hidden="true" queryMode="single" width="120"></t:dgCol>
- <t:dgCol title="创建日期" field="createDate" formatter="yyyy-MM-dd hh:mm:ss" hidden="true" queryMode="single" width="120"></t:dgCol>
- <t:dgCol title="更新人名称" field="updateName" hidden="true" queryMode="single" width="120"></t:dgCol>
- <t:dgCol title="更新人登录名称" field="updateBy" hidden="true" queryMode="single" width="120"></t:dgCol>
- <t:dgCol title="更新日期" field="updateDate" formatter="yyyy-MM-dd hh:mm:ss" hidden="true" queryMode="single" width="120"></t:dgCol>
- <t:dgCol title="所属部门" field="sysOrgCode" hidden="true" queryMode="single" width="120"></t:dgCol>
- <t:dgCol title="所属公司" field="sysCompanyCode" hidden="true" queryMode="single" width="120"></t:dgCol>
- <%-- <t:dgCol title="操作" field="opt"></t:dgCol> --%>
- <%-- <t:dgDelOpt title="删除" url="projarrangeDetailController.do?doDel&id={id}" urlclass="ace_button" urlfont="fa-trash-o"/>
- <t:dgToolBar title="录入" icon="icon-add" operationCode="add" url="projarrangeDetailController.do?goAdd" funname="add"></t:dgToolBar>
- <t:dgToolBar title="修改" icon="icon-edit" operationCode="edit" url="projarrangeDetailController.do?goUpdate" funname="update"></t:dgToolBar>
- <t:dgToolBar title="批量删除" icon="icon-remove" operationCode="remove" url="projarrangeDetailController.do?doBatchDel" funname="deleteALLSelect"></t:dgToolBar>
- <t:dgToolBar title="查看" icon="icon-search" url="projarrangeDetailController.do?goUpdate" funname="detail"></t:dgToolBar>
- <t:dgToolBar title="导出" icon="icon-put" operationCode="put" funname="ExportXls"></t:dgToolBar>
- <t:dgToolBar title="模板下载" icon="icon-putout" operationCode="putout" funname="ExportXlsByT"></t:dgToolBar> --%>
- <t:dgToolBar operationCode="edit" title="修改" icon="icon-edit" operationCode="edit" funname="editRow"></t:dgToolBar>
- <t:dgToolBar operationCode="undo" title="取消编辑" icon="icon-cancel1" funname="reject"></t:dgToolBar>
- <%-- <t:dgToolBar title="刷新" icon="icon-refresh" url="" funname="refresh"></t:dgToolBar> --%>
- <t:dgToolBar operationCode="save" title="保存" icon="icon-save" url="projarrangeDetailController.do?saveRows" funname="saveData"></t:dgToolBar>
- <%-- <t:dgToolBar operationCode="putout" title="上报" icon="icon-report" funname="putout"></t:dgToolBar> --%>
- <%-- <t:dgToolBar title="导出" icon="icon-put" operationCode="put" funname="ExportXls"></t:dgToolBar> --%>
- <%-- <t:dgToolBar title="导出排班模板" icon="icon-putout" operationCode="putout" funname="ExportXlsTemplate"></t:dgToolBar> --%>
- <%-- <t:dgToolBar title="导入排班excel" icon="icon-put" operationCode="put" funname="ImportXls"></t:dgToolBar> --%>
- <t:dgToolBar title="刷新" icon="icon-refresh" url="projarrangeDetailController.do?saveRows" funname="recalculateDuration"></t:dgToolBar>
- </t:datagrid>
- </div>
-
- <script>
- $(function() {
- var datagrid = $("#projarrangeDetailListtb");
- // datagrid.prepend($("#yearmonth1 div[name='yearmonth2']").html());
- datagrid.children(".datagrid-toolbar").before($("#yearmonth1 div[name='yearmonth2']").html());
- $("#yearmonth1").html('');
- datagrid.children(".datagrid-toolbar").children("span:first").attr("style","float:left;margin-bottom:4px;");
- });
- </script>
- <div id="yearmonth1" style="display: none;">
- <div name="yearmonth2">
- <div name="yearmonth" style="margin:23px 0 18px 0;">
- <t:formvalid formid="formobj" dialog="false" tipSweep="true" layout="table" action="wagestrategyController.do?saveRows" tiptype="1" callback="callback">
- <span>
- <label class="Validform_label">
- <span color="red" class="requiredIcon">*</span>排班月度:
- </label>
- <input id="yearmonth" name="yearmonth" style="width: 150px;" type="text" placeholder="请选择排班月度" class="Wdate" datatype="*" onclick="WdatePicker({onpicked:yearmonthChange,dateFmt:'yyyy-MM',minDate:'2017-01',maxDate:'2026-12'})" readonly="readonly" value="${yearmonth}"/>
- <span class="Validform_checktip"></span>
- <label class="Validform_label" style="display: none;"><t:mutiLang langKey="costplan.occurTime" /></label>
- </span>
- <span>
- <label class="Validform_label">
- <span color="red" class="requiredIcon">*</span>项目名称:
- </label>
- <input readonly="true" type="text" id="departname" name="departname" style="width: 150px;" value="${departname}" placeholder="请选择项目名称" onclick="openDepartmentSelect()"/>
- <input id="pid" name=pid type="hidden" value="${pid},"/>
- <a href="#" class="easyui-linkbutton" plain="true" icon="icon-select" id="departSearch" onclick="openDepartmentSelect()">选择</a>
- <a href="#" class="easyui-linkbutton" plain="true" icon="icon-clean" id="departRedo" onclick="callbackClean()">清空</a>
- </span>
- <span>
- <label class="Validform_label">员工姓名:
- </label>
- <input type="text" id="usernamesearch" name="usernamesearch" style="width: 150px;" value="${username}" />
- <a href="#" class="easyui-linkbutton" plain="true" icon="icon-select" id="usersearch" onclick="openUserSearch()">搜索员工</a>
- </span>
- <span style="float: right;">
- <a href="#" style="float: right;" class="easyui-linkbutton" plain="true" icon="icon-add" operationCode="add" id="" onclick="onDutyOperate()">轮流值班/加班</a>
- <a href="#" style="float: right;" class="easyui-linkbutton" plain="true" icon="icon-add" operationCode="add" id="" onclick="monthArrange()">月度排班</a>
- <a href="#" style="float: right;" class="easyui-linkbutton" plain="true" icon="icon-select" id="" onclick="copyLastMonthArrange()">复制上月排班</a>
- </span>
- </t:formvalid>
- </div>
- </div>
- </div>
- </div>
-
- <!-- <div id="yy" class="easyui-dialog" title="costplan.view.lx.plan" style="width: 110px; height: 110px; overflow: hidden"> -->
- <script src = "webpage/cn/com/lzt/projarrangedetail/projarrangeDetailList.js"></script>
- <script type="text/javascript">
-
-
- //导入
- function ImportXls() {
- openuploadwin('Excel导入', 'projarrangeDetailController.do?upload', "projarrangeDetailList");
- }
- //导出
- function ExportXls() {
- // var pid=$("#pid").val();
- // var yearmonth=$("#yearmonth").val();
- JeecgExcelExport("projarrangeDetailController.do?exportXls" ,"projarrangeDetailList");
- }
- //模板下载
- function ExportXlsByT() {
- JeecgExcelExport("projarrangeDetailController.do?exportXlsByT","projarrangeDetailList");
- }
- //下载排班模板
- function ExportXlsTemplate() {
- JeecgExcelExport("projarrangeDetailController.do?exportXlsTemplate" ,"projarrangeDetailList");
- }
- //新增
- function add(title,url,id){
- window.location.href=url;
- }
- //修改
- function update(title,url, id){
- updateNotCreateWin("修改",url, "projarrangeDetailList",false);
- }
- //查看
- function view(title,url, id){
- viewNotCreateWin("查看",url, "projarrangeDetailList",false);
- }
-
- //轮流值班
- function onDutyOperate(){
- //debugger;
- var yearmonth = $("#yearmonth").val();
- /* var flag=arrangeDateRule(yearmonth);
- if(flag==false){
- layer.alert("项目处排班时间为每月1-20号,只能向后排一个月的");
- return false;
- } */
- var pid = $("#pid").val();
- if(pid.length<10){
- layer.alert("请选择项目名称");
- return false;
- }
-
- $.ajax({
- url:"projarrangeDetailController.do?checkMonthArrangeDutyStatus",
- type:"post",
- data: {
- pid:pid,
- yearmonth:yearmonth
- },
- cache : false,
- success:function(data){
- var d = data; // ------ $.parseJSON(data);
- if(d.msg=="2"){
- layer.alert("排班已经确认,无法再次排班");
- return false;
- }else{
- $.dialog({content: 'url:onDutyOperateController.do?list&yearmonth='+yearmonth+'&pid='+pid, zIndex: getzIndex(), title: '轮流值班/加班', lock: true, width: '1000px', height: '500px',
- opacity: 0.4, button: [
- {name: '<t:mutiLang langKey="common.confirm"/>', callback: function(){
- //刷新表格数据
- refresh();
- //获得子页面getReason()方法中的值
- var iframe = this.iframe.contentWindow;
- if(iframe.getReason().length>0){
- var strData=eval(iframe.getReason());
- var onDutyOperateId="";
- for(var key in strData[0]){
- if(key=="onDutyOperateId"){
- onDutyOperateId=strData[0][key];
- }
- }
-
- //var arrangeDutyStatus="0";
- $.ajax({
- url:"projarrangeDetailController.do?saveOndutyArrangeDutyOperate",
- async:true,
- type:"post",
- data: {
- onDutyOperateId : onDutyOperateId,
- yearmonth : yearmonth,
- pid : pid
- },
- cache : false,
- success:function(aj){
- data=JSON.parse(aj);
- if (data.success) {
- //tip(data.msg);
- //layer.alert(data.msg);
- //刷新表格数据
- refresh();
- } else {
- layer.alert(data.msg);
- }
- }
- });
- }
- }, focus: true},
- {name: '<t:mutiLang langKey="common.cancel"/>', callback: function (){
- refresh();
- }}
- ]}).zindex();
- }
- }
- });
-
-
- }
-
- /* function monthArrange(){
- // var url ="tBusCostPlanController.do?viewlxplan&id="+id;
- $.dialog(
- {
- content : 'url:arrangeDutyOperateController.do?list',
- zIndex : getzIndex(),
- title : '<t:mutiLang langKey="costplan.view.lx.plan" />',//选择框标题
- lock : true,//是否锁定 当为true 时 下层有蒙版,不允许用户在弹出窗口以外有其它操作
- width : '1200px',// 选择框宽度
- height : '350px',//选择框高度
- opacity : 0.4,//透明度 (经过测试 效果好像不太明显 )
- button : [ {
- name : '<t:mutiLang langKey="common.close" />',
- focus : true,
- callback : function() {
- }
- } ,
- {
- name : '<t:mutiLang langKey="common.close" />',
- focus : true,
- callback : function() {
- }
- } ]
- }).zindex();
-
- } */
-
- //月度排班
- function monthArrange(){
- //debugger;
- var yearmonth = $("#yearmonth").val();
- /* var flag=arrangeDateRule(yearmonth);
- if(flag==false){
- layer.alert("项目处排班时间为每月1-20号,只能向后排一个月的");
- return false;
- } */
- var pid = $("#pid").val();
- if(pid.length<10){
- layer.alert("请选择项目名称");
- return false;
- }
-
- $.ajax({
- url:"projarrangeDetailController.do?checkMonthArrangeDutyStatus",
- type:"post",
- data: {
- pid:pid,
- yearmonth:yearmonth
- },
- cache : false,
- success:function(data){
- var d = data; // ------ $.parseJSON(data);
- if(d.msg=="2"){
- layer.alert("排班已经确认,无法再次排班");
- return false;
- }else{
- $.dialog({content: 'url:arrangeDutyOperateController.do?list&yearmonth='+yearmonth+'&pid='+pid, zIndex: getzIndex(), title: '月度排班', lock: true, width: '1000px', height: '500px',
- opacity: 0.4, button: [
- {name: '<t:mutiLang langKey="common.confirm"/>', callback: function(){
- //刷新表格数据
- refresh();
- //获得子页面getReason()方法中的值
- var iframe = this.iframe.contentWindow;
- if(iframe.getReason().length>0){
- var strData=eval(iframe.getReason());
- var arrangeDutyOperateId="";
- for(var key in strData[0]){
- if(key=="arrangeDutyOperateId"){
- arrangeDutyOperateId=strData[0][key];
- }
- }
-
- var arrangeDutyStatus="0";
- $.ajax({
- url:"projarrangeDetailController.do?saveMonthArrangeDutyOperate",
- async:true,
- type:"post",
- data: {
- arrangeDutyOperateId : arrangeDutyOperateId,
- yearmonth : yearmonth,
- pid : pid,
- arrangeDutyStatus : arrangeDutyStatus
- },
- cache : false,
- success:function(aj){
- data=JSON.parse(aj);
- if (data.success) {
- //tip(data.msg);
- //刷新表格数据
- refresh();
- } else {
- layer.alert(data.msg);
- }
- }
- });
- }
- }, focus: true},
- {name: '<t:mutiLang langKey="common.cancel"/>', callback: function (){
- refresh();
- }}
- ]}).zindex();
- }
- }
- });
-
-
- }
-
- //给日期周末的列名添加颜色样式
- $(function(){
-
- var specialCalendar=$("#specialCalendar").val();
- var specialCalendarArr=eval(specialCalendar);
- var datagrid = $(".datagrid-view2").children("div").children("div");
- //$("td[field='postid']").css({"color":"red"})
-
- datagrid.children("table").find("td").each(function(){
- //arr[$(this).index()] = $(this).val();
- //获取filed值;
- var field=($(this)[0].attributes)[0].value;
- //获取td值;
- var tdVal=$(this).text();
- for(var key in specialCalendarArr[0]){
- if(field==key){
- if(parseInt(specialCalendarArr[0][key])>5){
- //给列赋颜色
- $("td[field='"+field+"']").css({"background":"#d65653"});
- $("td[field='"+field+"']").css({"color":"#ffffff"});
- }else{
- //给列赋颜色
- $("td[field='"+field+"']").css({"background":"#5187c9"});
- $("td[field='"+field+"']").css({"color":"#ffffff"});
- }
- }
- }
- });
- });
-
-
-
- //排班月度默认选择当前月
- /* $(function(){
- var yearmonth=getYearMonth();
- $("#yearmonth").val(yearmonth);
- $("#tempTime").val(yearmonth);
- //getData(yearmonth);
- }) */
-
- //异步获取表单数据
- /* function getData(yearmonth){
- var pid="";
-
- pid=$("#pid").val();
- var arr = yearmonth.split("-");
- //获取当前年
- var year=arr[0];
- //获取当前月
- var month=arr[1];
- var htmlCode="";
- $.ajax({
- url : "projarrangeDetailController.do?getCalendar",
- type : 'post',
- data : {
- year : year,
- month : month
- },
- cache : false,
- success : function(data) {
- var d = data; // ------ $.parseJSON(data);
- //console.log(d.attributes[0]);
- var strDate="";
- for(var i=d.attributes[0].length-1;i>=0;i--){
- if(htmlCode.length!=0){
- htmlCode+="<td width='120' field='"+d.attributes[0][i].year+"-"+d.attributes[0][i].month+"-"+d.attributes[0][i].day+"' >"+
- "<div class='datagrid-cell' style='width: 104px;'><span>"+
- d.attributes[0][i].month+"月"+d.attributes[0][i].day+"日"+
- "</span><span class='datagrid-sort-icon'> </span></div></td>";
- }else{
- htmlCode="<td width='120' field='"+d.attributes[0][i].year+"-"+d.attributes[0][i].month+"-"+d.attributes[0][i].day+"' >"+
- "<div class='datagrid-cell' style='width: 104px;'><span>"+
- d.attributes[0][i].month+"月"+d.attributes[0][i].day+"日"+
- "</span><span class='datagrid-sort-icon'> </span></div></td>";
- }
-
- if(strDate.length!=0){
- strDate+=","+d.attributes[0][i].year+"-"+d.attributes[0][i].month+"-"+d.attributes[0][i].day;
- }else{
- strDate=d.attributes[0][i].year+"-"+d.attributes[0][i].month+"-"+d.attributes[0][i].day;
- }
- }
-
- var myTable=$(".datagrid-view2").children("div").children("div").children("table").children("tbody").children("tr:first");
- myTable.children("td:first").next().next().next().after(htmlCode);
- $("#strDate").val(strDate);
-
-
-
-
- $('#projarrangeDetailList').datagrid('insertRow',{
- //index: rowIndex, // 索引从0开始
- row: {
- postid: "1",
- userid: "1",
- timeOutOvertimeHours: "1",
- workingDays: "1"
-
- }
- });
-
- }
- });
- }
- */
-
- //定义排班日期规则
- function arrangeDateRule(yearmonth){
- var flag=false;
- var myDate=new Date;
- if(parseInt(myDate.getDate())>20||myDate.getFullYear()!=yearmonth.split("-")[0]||myDate.getMonth()+2!=yearmonth.split("-")[1]){
- //layer.alert("项目处排班时间为每月1-20号,只能向后排一个月的,排班上报时间截止到每月20号 23:59分,21号到月末默认不可提交");
- flag= false;
- }else{
- flag= true;
- }
- return flag;
- }
-
-
- function getYearMonthDate(){
- var myDate = new Date("2017-01-01");
- //获取当前年
- var year=myDate.getFullYear();
- //获取当前月
- var month=myDate.getMonth()+1;
- //获取当前日
- var date=myDate.getDate();
- return year+"-"+month+"-"+date;
- }
-
- //选择排班月度
- function yearmonthChange(){
- var yearmonth=$(this).val();
- $("#tempTime").val(yearmonth);
- var pid=$("#pid").val();
- if(pid.length<10){
- return false;
- }
-
- var dateNumber=yearmonth.split("-");
-
- window.location.href="projarrangeDetailController.do?listAll&year="+dateNumber[0]+"&month="+dateNumber[1]+"&pid="+pid;
- }
-
- function openUserSearch(){
- var tempTime=$("#tempTime").val();
- var myPId=$('#pid').val();
- var username = $("#usernamesearch").val();
- //根据项目名称查询数据
- if(myPId!=""&&tempTime!=""){
- var dateNumber=tempTime.split("-");
- window.location.href="projarrangeDetailController.do?listAll&year="+dateNumber[0]+"&month="+dateNumber[1]+"&pid="+myPId+"&usernamesearch="+username;
- }
- }
-
- //选择项目名称,列表================
- function openDepartmentSelect() {
- //$.dialog.setting.zIndex = getzIndex();
- var orgIds = $("#pid").val();
- $.dialog({
- content: 'url:dialogDealController.do?projectDepartTableAll&ids='+orgIds, zIndex: getzIndex(), title: '项目名称列表', lock: true, width: '600px', height: '350px', opacity: 0.4, button: [
- {name: '<t:mutiLang langKey="common.confirm"/>', callback: function (){
- var iframe = this.iframe.contentWindow;
- if(iframe.getReason().length>0){
- var strData=eval(iframe.getReason());
- for(var key in strData[0]){
- if(key=="strPId"){
- $("#pid").val(strData[0][key]);
- }else if(key=="strDepartName"){
- $("#departname").val(strData[0][key]);
- }
- }
-
- var tempTime=$("#tempTime").val();
- var myPId=$('#pid').val();
- //根据项目名称查询数据
- if(myPId!=""&&tempTime!=""){
- var dateNumber=tempTime.split("-");
- window.location.href="projarrangeDetailController.do?listAll&year="+dateNumber[0]+"&month="+dateNumber[1]+"&pid="+myPId;
- }
-
- }
- }, focus: true},
- {name: '<t:mutiLang langKey="common.cancel"/>', callback: function (){}}
-
- ]}).zindex();
- }
- function refresh1() {
- var pid = $("#pid").val();
- if(pid.length<10){
- layer.alert("请选择项目名称");
- return false;
- }
- var tempTime=$("#tempTime").val();
- if(tempTime.length = 0){
- layer.alert("请选择排班月度");
- return false;
- }
-
- var dateNumber=tempTime.split("-");
- window.location.href="projarrangeDetailController.do?listAll&year="+dateNumber[0]+"&month="+dateNumber[1]+"&pid="+pid;
- }
-
- function callbackClean(){
- $('#departname').val('');
- $('#pid').val('');
- }
- //选择项目名称列表================
-
- /* //部门选择==========
- function openDepartmentSelect() {
- //$.dialog.setting.zIndex = getzIndex();
- var orgIds = $("#pid").val();
- $.dialog({content: 'url:projarrangeDetailController.do?departZTreeSelect&orgIds='+orgIds, zIndex: getzIndex(), title: '所属部门列表', lock: true, width: '400px', height: '350px', opacity: 0.4, button: [
- {name: '<t:mutiLang langKey="common.confirm"/>', callback: callbackDepartmentSelect, focus: true},
- {name: '<t:mutiLang langKey="common.cancel"/>', callback: function (){}}
- ]}).zindex();
- }
-
- function callbackDepartmentSelect() {
- var iframe = this.iframe.contentWindow;
- var treeObj = iframe.$.fn.zTree.getZTreeObj("departSelect");
- var nodes = treeObj.getCheckedNodes(true);
- if(nodes.length>0){
- var ids='',names='';
- for(i=0;i<nodes.length;i++){
- var node = nodes[i];
- ids += node.id+',';
- names += node.name+',';
- }
- $('#departname').val(names.substring(0,names.indexOf(",")));
- $('#departname').blur();
- $('#pid').val(ids);
-
- var tempTime=$("#tempTime").val();
- //根据项目名称查询数据
- if(ids!=""&&tempTime!=""){
- var myPId=$('#pid').val();
- var dateNumber=tempTime.split("-");
- window.location.href="projarrangeDetailController.do?list&year="+dateNumber[0]+"&month="+dateNumber[1]+"&pid="+myPId;
- }else{
-
- }
-
- }
- }
- //清空
- function callbackClean(){//projarrangeDetailList
- //$('#projarrangeDetailListtb').datagrid('loadData', { total: 0, rows: [] });
- $('#departname').val('');
- $('#pid').val('');
-
- //获得所有行数据并删除
- var rowsAll = $("#projarrangeDetailList").datagrid('getData').rows;
- if (rowsAll.length>0) {
- for (var i = rowsAll.length - 1; i >= 0; i--) {
- var index = $('#projarrangeDetailList').datagrid('getRowIndex', rowsAll[i]);
- $('#projarrangeDetailList').datagrid('deleteRow', index);
- }
- }
- }
- //部门选择========== */
-
- var editRowSize=0;
- //编辑行
- function editRow(title,addurl,gname){
- var date = new Date();
- var day = date.getDate();
-
- // if(day> 1 && day <6){
- // layer.alert("每月2日~5日为考勤和工资核算期, 不能修改排班");
- // return false;
- // }
- var rows=$('#'+gname).datagrid("getChecked");
- if(rows.length==0){
- layer.alert("请选择条目");
- return false;
- }else{
- editRowSize=parseInt(editRowSize)+parseInt(1);
- }
- // if(parseInt(editRowSize)>5){
- // layer.alert("最多同时编辑5行数据");
- // return false;
- // }
- //排班月度
- var yearmonth=$("#yearmonth").val();
- var pid=$("#pid").val();
- var projarrangeDetailId=rows[0].id;
- var flag=arrangeDateRule(yearmonth);
- /* if(flag==false){
- layer.alert("项目处排班时间为每月1-20号,只能向后排一个月的");
- return false;
- } */
-
- $.ajax({
- url:"projarrangeDetailController.do?checkMonthArrangeDutyStatus",
- type:"post",
- data: {
- pid:pid,
- yearmonth:yearmonth
- },
- cache : false,
- success:function(data){
- var d = data; // ------ $.parseJSON(data);
- if(d.msg=="2"){
- layer.alert("排班已经确认,无法编辑");
- return false;
- }else{
- //异步判断是否可以行编辑
- $.ajax({
- url : "projarrangeDetailController.do?getCheckEdit",
- type : 'post',
- data : {
- id : projarrangeDetailId,
- yearmonth : yearmonth
- },
- cache : false,
- success : function(data) {
- var d = data; // ------ $.parseJSON(data);
- if (d.success==false) {
- var msg = d.msg;
- layer.alert(msg);
- return false;
- }else{
- for(var i=0;i<rows.length;i++){
- var index= $('#'+gname).datagrid('getRowIndex', rows[i]);
- $('#'+gname).datagrid('beginEdit', index);
- }
- }
- }
- });
- }
- }
- });
-
-
-
-
- }
-
- //结束编辑
- function endEdit(gname){
- var editIndex = $('#'+gname).datagrid('getRows').length-1;
- for(var i=0;i<=editIndex;i++){
- if($('#'+gname).datagrid('validateRow', i)){
- $('#'+gname).datagrid('endEdit', i);
- }else{
- return false;
- }
- }
- return true;
- }
-
- //取消编辑
- function reject(title,addurl,gname){
- var pid = $('#pid').val();
- if(pid.length==0){
- return false;
- }
- $('#'+gname).datagrid('clearChecked');
- $('#'+gname).datagrid('rejectChanges');
- }
-
- //上报
- function putout(){
- //排班月度
- var yearmonth=$("#yearmonth").val();
- //项目id
- var pid=$("#pid").val();
-
- //日历id
- var calendaridStr=$("#calendaridStr").val();
- //排班状态1已上报
- // var arrangeDutyStatus="1";
-
- /* var flag=arrangeDateRule(yearmonth);
- if(flag==false){
- layer.alert("项目处排班时间为每月1-20号,只能向后排一个月的,排班上报时间截止到每月20号 23:59分,21号到月末默认不可提交;");
- return false;
- } */
-
- //获得所有行数据
- var rows = $("#projarrangeDetailList").datagrid('getData').rows;
- if (rows.length>0) {
-
- var flag=true;
-
- var strmap="[";
- for(var i=0;i<rows.length;i++){
- strmap+="{";
- for(var d in rows[i]){
- strmap+='"'+d+'":"'+rows[i][d]+'",';
-
- if(d=="pjtPostId"){
- if(rows[i][d]==""){
- flag=false;
- }
- }
-
- }
- if(i!=rows.length-1){
- strmap+="},";
- }else{
- strmap+="}";
- }
- }
- strmap+="]";
-
- $.ajax({
- url:"projarrangeDetailController.do?checkMonthArrangeDutyStatus",
- type:"post",
- data: {
- pid:pid,
- yearmonth:yearmonth
- },
- cache : false,
- success:function(data){
- var d = data; // ------ $.parseJSON(data);
-
- if(d.msg==""){
- layer.alert("没有排班数据,请先进行排班");
- return false;
- }else if(d.msg=="0"){//可以上报
- if(flag==false){
- $.messager.confirm("有员工未排班", "确定要上报吗?", function (r) {
- if (r) {
- putOutEnd(yearmonth,pid);
- }
- });
-
- }else{
- putOutEnd(yearmonth,pid);
- }
- }else if(d.msg=="1"){//已经上报,再次上报
- $.messager.confirm("已有上报记录", "确定要再次上报吗?", function (r) {
- if (r) {
- putOutEnd(yearmonth,pid);
- }
- });
- }else if(d.msg=="2"){
- layer.alert("排班已经确认,无法再次上报");
- return false;
- }
- }
- });
-
-
- }else{
- layer.alert("没有需要上报的数据!");
- return false;
- }
- }
-
- //排班上报最终提交代码
- function putOutEnd(yearmonth,pid){
- $.ajax({
- url:"projarrangeDetailController.do?putOutProjarrange",
- type:"post",
- data: {
- "yearmonth":yearmonth,
- "pid":pid
- },
- cache : false,
- success:function(data){
- var d = data; // ------ $.parseJSON(data);
- if(d.success){
- tip(d.msg);
- refresh();
- }else{
- layer.alert(d.msg);
- }
- }
- });
- }
-
-
- //保存数据
- function saveData(title,addurl,gname){
- if(!endEdit(gname)){
- return false;
- }
- var rows=$('#'+gname).datagrid("getChanges","inserted");
- var uprows=$('#'+gname).datagrid("getChanges","updated");
- rows=rows.concat(uprows);
- if(rows.length<=0){
- layer.alert("您没有任何操作!");
- return false;
- }
-
- //排班月度
- var yearmonth=$("#yearmonth").val();
- //项目pid
- var pid=$("#pid").val();
-
- //日历id
- var calendaridStr=$("#calendaridStr").val();
- //排班状态0未上报
- var arrangeDutyStatus="0";
-
- var strmap="[";
- for(var i=0;i<rows.length;i++){
- strmap+="{";
- for(var d in rows[i]){
- //result["projectPostUserMiniDaoDtoList["+i+"]."+d]=rows[i][d];
- /* if(strmap.length==2){
- strmap+='"'+d+'":"'+rows[i][d]+'"';
- }else{
- strmap+=',"'+d+'":"'+rows[i][d]+'"';
- } */
- strmap+='"'+d+'":"'+rows[i][d]+'",';
- }
- if(i!=rows.length-1){
- strmap+="},";
- }else{
- strmap+="}";
- }
- }
- strmap+="]";
-
- //验证班次是否为停用状态,为停用状态则不可编辑
- $.ajax({
- url:"projarrangeDetailController.do?checkShiftStatus",
- type:"post",
- data: {
- "strmap":strmap
- },
- cache : false,
- success:function(data){
- var d = data; // ------ $.parseJSON(data);
- if(d.success){
- $.ajax({
- url:"projarrangeDetailController.do?saveRows",
- type:"post",
- data: {"strmap":strmap,
- "calendaridStr":calendaridStr,
- "yearmonth":yearmonth,
- "pid":pid,
- "arrangeDutyStatus":arrangeDutyStatus},
- cache : false,
- success:function(data){
- var d = data; // ------ $.parseJSON(data);
-
- if(d.success){
- tip(d.msg);
- refresh();
- }else{
- layer.alert(d.msg);
- return false;
- }
- }
- });
- }else{
- layer.alert(d.msg);
- for(var i=0;i<rows.length;i++){
- var index= $('#'+gname).datagrid('getRowIndex', rows[i]);
- $('#'+gname).datagrid('beginEdit', index);
- }
- return false;
- }
- }
- });
- }
-
-
-
- // 重新计算超时加班时长、国定加班时长等
- function recalculateDuration(title, addurl, gname){
- $.messager.confirm("确认", "您确定刷新数据?<br/>刷新会更新核算数据,耗时较长请您耐心等待。", function (r) {
- if(r){
- if(!endEdit(gname)){
- return false;
- }
- // 获取所有行
- var rows=$('#'+gname).datagrid("getRows");
- if(rows.length<=0){
- layer.alert("没有数据无法进行此操作!");
- return false;
- }
-
- //排班月度
- var yearmonth=$("#yearmonth").val();
- //项目pid
- var pid=$("#pid").val();
- //日历id
- var calendaridStr=$("#calendaridStr").val();
- //排班状态0未上报
- var arrangeDutyStatus="0";
-
- var strmap="[";
- for(var i=0;i<rows.length;i++){
- strmap+="{";
- for(var d in rows[i]){
- strmap+='"'+d+'":"'+rows[i][d]+'",';
- }
- if(i!=rows.length-1){
- strmap+="},";
- }else{
- strmap+="}";
- }
- }
- strmap+="]";
-
- //验证班次是否为停用状态,为停用状态则不可编辑
- $.ajax({
- url:"projarrangeDetailController.do?checkShiftStatus",
- type:"post",
- data: {
- "strmap":strmap
- },
- cache : false,
- success:function(data){
- var d = data; // ------ $.parseJSON(data);
- if(d.success){
- $.ajax({
- url:"projarrangeDetailController.do?saveRows",
- type:"post",
- data: { "strmap":strmap,
- "calendaridStr":calendaridStr,
- "yearmonth":yearmonth,
- "pid":pid,
- "arrangeDutyStatus":arrangeDutyStatus},
- cache : false,
- success:function(data){
- var d = data; // ------ $.parseJSON(data);
- if(d.success){
- tip(d.msg);
- refresh();
- }else{
- layer.alert(d.msg);
- return false;
- }
- }
- });
- }else{
- layer.alert(d.msg);
- for(var i=0;i<rows.length;i++){
- var index= $('#'+gname).datagrid('getRowIndex', rows[i]);
- $('#'+gname).datagrid('beginEdit', index);
- }
- return false;
- }
- }
- });
-
- }
- });
- }
-
-
- //刷新表格数据
- function refresh(){
- var pid = $('#pid').val();
- if(pid.length==0){
- return false;
- }
- //先清除选中,再刷新
- $("#projarrangeDetailList").datagrid('clearChecked');
- $("#projarrangeDetailList").datagrid('unselectAll');
- // $(".datagrid-htable tr:not(:first)").empty("");
- //$(".pagination-load").click();
- $("#projarrangeDetailList").datagrid('reload');
- }
- //复制上月月度排班,只复制做五休二运转类型的排班
- function copyLastMonthArrange(){
- //debugger;
- var yearmonth = $("#yearmonth").val();
- var pid = $("#pid").val();
- if(pid.length<10){
- layer.alert("请选择项目名称");
- return false;
- }
-
- $.ajax({
- url:"projarrangeDetailController.do?copyLastMonthArrange",
- type:"post",
- data: {
- pid:pid,
- yearmonth:yearmonth
- },
- cache : false,
- success:function(data){
- var d = data; // ------ $.parseJSON(data);
- if(d.success == false)
- layer.alert(d.msg);
- refresh();
- return true;
- }
- })
- }
-
-
- </script>
|