var weekOfday = Number(moment().format('E'));//计算今天是这周第几天
var clicknum = 0;//定义上下周点击次数
var startDate, endDate;
var weekNum = ['周一', '周二', '周三', '周四', '周五', '周六', '周日'];
var fun = {
init: function () {
// 初始化
fun.refreshQueryTime();
//收费员下拉框
fun.initChargerSelect();
// domStr,isNeedAll, plFilterFun, isIncludeRechargePlNo, plBusiType
commSelect.plName_select("#parkIds",null,null,null,3);
$('#scheduType').selectpicker('render');
// 获取今天时间
var todaytime = moment().subtract('days', 0).format('YYYY/MM/DD');
// $('#time-opr-nowtime').text(todaytime);
fun.queryDutyRosterser();
},
//更新查询时间
refreshQueryTime: function () {
var start = weekOfday - 7 * clicknum - 1;
var end = weekOfday - clicknum * 7 - 7;
startDate = moment().subtract('days', start).format('YYYY-MM-DD');
endDate = moment().subtract('days', end).format('YYYY-MM-DD');
//console.log(startDate,endDate);
},
timeoprprevbtn: function () {
$('#time-opr-nextbtn').removeClass('weekActive');
$('#time-opr-prevbtn').addClass('weekActive');
clicknum--;
// if (clicknum == 0) {
// $('#time-opr-prevbtn').addClass('display-none');
// } else {
//
// }
fun.refreshQueryTime();
fun.queryDutyRosterser();
},
timeoprnextbtn: function () {
$('#time-opr-prevbtn').removeClass('weekActive');
$('#time-opr-nextbtn').addClass('weekActive');
if (clicknum == 4) {
return false;
} else {
clicknum++;
console.log(clicknum)
fun.refreshQueryTime();
fun.queryDutyRosterser();
}
},
breakOperFun: function () {
$('#schplan-oper-add').selectpicker('render');
fun.queryNoRestCharger();
},
//调班操作
exchangeOperFun: function () {
fun.queryWorkChargerForDateList();
},
//永久调班操作
exchangeForeverOperFun: function () {
fun.queryChargerInfoForDutyRosterBase();
},
getQueryParam: function () {
var chargeCodes = JSON.parse($('#scheduType').val());
var plNos = JSON.parse($('#parkIds').val());
var req = {
startDate: new Date(startDate + ' 00:00:00'.replace(new RegExp(/-/gm), "/")),
endDate: new Date(endDate + ' 23:59:59'.replace(new RegExp(/-/gm), "/")),
sysCode: sysComm.sysCode,
}
// 视图类型 10:收费员视图 20:停车场视图
if (fun.isChargerView()) {
req.chargeCodes = chargeCodes;
req.viewType = 10;
req.workState = [10, 20, 30, 40];
//$('#scheduType').val();
} else {
req.chargeCodes = [];
req.plNo = plNos;
req.viewType = 20;
req.workState = [10, 40];//停车场视图只需要查询上班的记录
}
return req;
},
//根据停车场编号查询收费员信息
initChargerSelect: function () {
var data = fun.getChargerMsg();
var htmls = '';
var html = '';
var chargerCodes = [];
for (var i = 0; i < data.length; i++) {
chargerCodes.push(data[i].chargerCode);
html += "";
}
var chargerCodesStr = JSON.stringify(chargerCodes);
htmls = '' + html;
$("#scheduType").empty();
$("#scheduType").append(htmls);
$('#scheduType').selectpicker('refresh');
},
getChargerMsg: function () {
var plNo = "";
var chargers = "";
var req = {
baseRequest: {pageNum: 1, pageSize: 0},
plNo: plNo,
parkAreaCode: "",
groupCode: "",
onduty: "",
status: "",
nameOrNo: "",
// chargerCodes:fn.getChargerCodes(),
orgId:fn.getOrgId(),
sysCode: sysComm.sysCode
};
var opt = {
async: false,
data: JSON.stringify(req),
method: "POST",
url: dataUrl.util.queryCashierListInfo(),
success: function (res) {
if (res.code == '8888') {
chargers = JSON.stringify(res.data.rows);
}
}
}
sysAjax(opt);
return JSON.parse(chargers);
},
//判断是否收费员视图
isChargerView: function () {
return $('#schtolltype').hasClass('ITD-graynav-topbaractive');
},
/*查询排班计划*/
queryDutyRosterser: function () {
var req = fun.getQueryParam();
var opt = {
method: 'post',
url: dataUrl.util.queryDutyRoster(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
if (res.code == '8888') {
//console.log(res.data);
if (req.viewType == 10) {
//收费员视图
fun.handelChargerViewDutyRosterData(req, res.data);
} else {
//停车场视图
fun.handelParkViewDutyRosterData(req, res.data);
}
}
}
};
sysAjax(opt);
},
/*查询临时调班收费员*/
queryWorkChargerForDateList: function () {
$("#schplan-tboper-add").empty();
$('#schplan-tboper-add').selectpicker('refresh');
var chargerCodeSource = $.trim($('#chargerCodeExchange').val());
var req = {
dutyDay: $("#dutyDayExchange").val(),
sysCode: sysComm.sysCode
}
var opt = {
method: 'post',
url: dataUrl.util.queryWorkChargerForDateList(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
if (res.code == '8888') {
//console.log(res.data);
var data = res.data;
var html = '';
var chargerCodes = [];
for (var i = 0; i < data.length; i++) {
if(chargerCodeSource != data[i].chargerCode){
chargerCodes.push(data[i].chargerCode);
html += "";
}
}
$("#schplan-tboper-add").empty();
$("#schplan-tboper-add").append(html);
$('#schplan-tboper-add').selectpicker('refresh');
$('#achplan_tibanmodel').modal('show');
}
}
};
sysAjax(opt);
},
/*查询永久调班收费员*/
queryChargerInfoForDutyRosterBase: function () {
$("#schplan-ftboper-add").empty();
$('#schplan-ftboper-add').selectpicker('refresh');
var chargerCodeSource =$.trim($('#chargerCodeExchangeForever').val());
var req = {
sysCode: sysComm.sysCode
}
var opt = {
method: 'post',
url: dataUrl.util.queryChargerInfoForDutyRosterBase(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
if (res.code == '8888') {
var data = res.data;
var html = '';
var chargerCodes = [];
for (var i = 0; i < data.length; i++) {
debugger
if(chargerCodeSource != data[i].chargerCode){
chargerCodes.push(data[i].chargerCode);
html += "";
}
}
$("#schplan-ftboper-add").empty();
$("#schplan-ftboper-add").append(html);
$('#schplan-ftboper-add').selectpicker('refresh');
$('#achplan_tipeForever').modal('show');
}
}
};
sysAjax(opt);
},
/*查询永久调班收费员数据*/
queryChargerInfoForDutyRosterBaseOfData: function () {
var req = {
sysCode: sysComm.sysCode
}
var chargerCodes = [];
var opt = {
method: 'post',
url: dataUrl.util.queryChargerInfoForDutyRosterBase(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async:false,
success: function (res) {
if (res.code == '8888') {
var data = res.data;
for (var i = 0; i < data.length; i++) {
chargerCodes.push(data[i].chargerCode);
}
}
}
};
sysAjax(opt);
return chargerCodes;
},
//调班处理
exchangeDutyRoster:function(souceChargerCode,targetChargerCode,dutyDay,exchangeType){
var req = {
sysCode: sysComm.sysCode,
souceChargerCode:souceChargerCode,
targetChargerCode:targetChargerCode,
dutyDay:dutyDay,
exchangeType:exchangeType
}
var opt = {
method: 'post',
url: dataUrl.util.exchangeDutyRoster(),
data: JSON.stringify(req),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (res) {
if (res.code == '8888') {
//1-临时调换 2-永久调换
if(exchangeType == 1){
//
$('#achplan_tibanmodel').modal('hide');
}else{
$('#achplan_tipeForever').modal('hide');
}
fun.queryDutyRosterser();
}else {
alert('调班失败');
}
}
};
sysAjax(opt);
},
/*处理停车场视图排班计划数据*/
handelParkViewDutyRosterData: function (req, data) {
var dateFilterArray = [];
//表头数据初始化
$("#park-wrap").empty();
var html = '
' +
'
停车场/时间
';
var tempTime = req.startDate;
for (var i = 0; i < 7; i++) {
var day = Number(moment(tempTime).format('E'));
var dateStr = (tempTime.getMonth() + 1) + '月' + tempTime.getDate() + '日 ' + weekNum[day - 1];
html += '
' + dateStr + '
';
dateFilterArray.push(tempTime.getTime());
tempTime.setDate(tempTime.getDate() + 1);
}
html += '
';
$("#park-wrap").html(html);
if (data.length == 0) {
$("#park-wrap").append('
暂无数据
');
} else {
//数据格式整理
var resData = data;
var parkData = {};
var berthData = {};
var groupData = {};
var dutyDayData = {};
var data = {};
$.each(resData, function (index, item) {
var plNo = item.plNo;
var berthNo = item.berthRangeNo;
var groupId = item.groupId;
var dutyDay = item.dutyDay;
if (parkData[plNo] == undefined || parkData[plNo] == null) {
parkData[plNo] = item.plName;
data[plNo] = {};
}
if (data[plNo][berthNo] == undefined || data[plNo][berthNo] == null) {
berthData[berthNo] = item.berthRangeName;
data[plNo][berthNo] = {};
}
if (data[plNo][berthNo][groupId] == undefined || data[plNo][berthNo][groupId] == null) {
groupData[groupId] = {};
groupData[groupId].groupName = item.groupName;
groupData[groupId].groupStartTime = item.groupStartTime;
groupData[groupId].groupEndTime = item.groupEndTime;
data[plNo][berthNo][groupId] = {};
}
if (data[plNo][berthNo][groupId][dutyDay] == undefined || data[plNo][berthNo][groupId][dutyDay] == null) {
dutyDayData[dutyDay] = {};
dutyDayData[dutyDay].dutyDay = item.dutyDay;
data[plNo][berthNo][groupId][dutyDay] = [];
}
data[plNo][berthNo][groupId][dutyDay].push(item);
});
//console.log('data:');
//console.log(data);
html = '
';
for (var plNo in data) {
html += '
' +
'
' +
'
' + fun.strFormatter(parkData[plNo]) + '
' +
'
' +
'
';
for (var berth in data[plNo]) {
html += '
' +
'
' +
'
' + fun.strFormatter(berthData[berth]) + '
' +
'
' +
'
';
for (var group in data[plNo][berth]) {
html += '
';
$("#park-wrap").append(html);
}
},
/*处理收费员视图排班计划数据*/
handelChargerViewDutyRosterData: function (req, data) {
//数据初始化
var dateFilterArray = [];
$("#toll-wrap").empty();
var html = '
' +
'
收费员/时间
';
var tempTime = req.startDate;
for (var i = 0; i < 7; i++) {
var day = Number(moment(tempTime).format('E'));
var dateStr = (tempTime.getMonth() + 1) + '月' + tempTime.getDate() + '日 ' + weekNum[day - 1];
html += '
' + dateStr + '
';
dateFilterArray.push(tempTime.getTime());
tempTime.setDate(tempTime.getDate() + 1);
}
html += '
';
$("#toll-wrap").html(html);
if (data.length == 0) {
$("#toll-wrap").append('
暂无数据
');
} else {
//数据格式整理
var resData = data;
var chargerData = {};
var data = {};
$.each(resData, function (index, item) {
var chargerCode = item.chargerCode;
if (data[chargerCode] == undefined || data[chargerCode] == null) {
chargerData[chargerCode] = {};
chargerData[chargerCode] = item.chargerName;
data[chargerCode] = [];
}
data[chargerCode].push(item);
});
var foreverChargerCodeArray = fun.queryChargerInfoForDutyRosterBaseOfData();
//填充内容
html = '
' ;
if(foreverChargerCodeArray.indexOf(chargerCode)>-1){
html += '
永久调班
';
}
$.each(dateFilterArray, function (index, filter) {
var isFind = false;
for (var i in data[chargerCode]) {
var _item = data[chargerCode][i];
if (DateUtils.long2String(filter, 1) == DateUtils.long2String(parseInt(_item.dutyDay), 1)) {
isFind = true;
if (_item.workState == 10) {//正常工作
html += '