| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561 |
- <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
- <%@include file="/context/mytags.jsp"%>
- <style type="text/css">
- .plantoolli {
- text-align: left;
- width: 25%;
- height: 25px;
- float: left;
- list-style-type: none;
- }
- </style>
- <t:base type="jquery,easyui,tools,DatePicker"></t:base>
- <link rel="stylesheet" type="text/css" href="css/commoncss.css"/>
- <script src="plug-in/layer/layer.js"></script>
- <script>
-
- var totalinfo = ${userAttendanceTotalPage};
-
- function btn_ok(){
- window.location.href='userAttendanceTotalController.do?listAll&queryParams='+encodeURI('${queryParams}');
- }
- function callback(data){
-
-
- if(data.success){
- layer.alert(data.msg, function(index){
- window.location.href='userAttendanceTotalController.do?listAll&queryParams='+encodeURI('${queryParams}');
- layer.close(index);
- });
- }
- else{
- layer.alert(data.msg);
- }
- }
- </script>
- <script type="text/javascript">
- //编写自定义JS代码
- </script>
-
- <div id ='userattendancedetaillisttb' >
- 员工姓名:${userAttendanceTotalPage.userrealName} 考勤年月: ${userAttendanceTotalPage.yearmonth}
- </div>
- <div >
- <div id='userattendancedatagrid' style=" width:98% ; height:58%;">
- <t:datagrid name="userattendancedetaillist"
- autoLoadData="true" checkbox="false" fitColumns="true"
- pagination = 'false'
- extendParams="queryParams:{attendanceId:'${userAttendanceTotalPage.id}'},"
- actionUrl="userAttendanceDetailController.do?datagrid" idField="id" fit="true" queryMode="group">
- <t:dgCol sortable="false" title="主键" field="id" hidden="true" queryMode="single" width="120"></t:dgCol>
- <t:dgCol sortable="false" title="json字段" field="jsonObj" hidden="true" queryMode="single" width="120"></t:dgCol>
- <t:dgCol sortable="false" title="主键attendanceId" field="attendanceId" hidden="true" width="120"></t:dgCol>
- <t:dgCol sortable="false" title="日期" field="ymdDate" formatter="yyyy-MM-dd" extendParams="align:'center'," queryMode="single" width="120"></t:dgCol>
- <t:dgCol sortable="false" title="状态" field="status" hidden="false" queryMode="single" dictionary="attendance_status_edit" extendParams="align:'center'," width="80"></t:dgCol>
- <t:dgCol sortable="false" title="出勤时间" field="attendanceDate" formatterjs="attendanceDatefmt" extendParams="align:'center'," queryMode="single" width="120"></t:dgCol>
- <t:dgCol sortable="false" title="退勤时间" field="retreatDate" formatterjs="retreatDatefmt" extendParams="align:'center'," queryMode="single" width="120"></t:dgCol>
- <t:dgCol sortable="false" title="班次" field="dutyId" queryMode="single" dictionary="t_bus_arrange_duty,id,duty_name" width="120"></t:dgCol>
- <t:dgCol sortable="false" title="应出勤时长" field="datumDate" style="text-align:right," formatterjs="minsToHoursandMinsfmt" queryMode="single" width="120"></t:dgCol>
- <t:dgCol sortable="false" title="全月时间差" style="text-align:right," field="timeDifference" formatterjs="minsToHoursandMinsfmt" queryMode="single" width="120"></t:dgCol>
- <t:dgCol sortable="false" title="临时借调项目" style="fmstatus" field="borrowspid" dictionary="t_s_depart,id,departname, and org_type != '1' " queryMode="single" width="120"></t:dgCol>
- <t:dgCol sortable="false" title="调整类型" field="fineTuningType" dictionary="attendance_timeFineTuning" width="120"></t:dgCol>
- <t:dgCol sortable="false" title="调整理由" field="adjustReason" queryMode="single" width="120"></t:dgCol>
- <t:dgCol sortable="false" title="时间微调" field="timeFineTuning" style="text-align:right," formatterjs="minsToHoursandMinsfmt" queryMode="single" width="120"></t:dgCol>
- </t:datagrid>
-
- </div>
- </div>
- <div style="width: 100%; padding-bottom: 40px;margin-top: 10px;">
- <span ><b style=" font-size: 18px; font-weight: 800;">数据合计</b></span>
- <br>
- <ul >
- <li class = 'plantoolli' >
- 月度应出勤时长:<b id = 'datumAttendanceDate'> </b>
- </li>
- <li class = 'plantoolli' >
- 月度实际出勤时长:<b id = 'actualAttendanceDate'> </b>
-
- </li>
- <li class = 'plantoolli' >
- 调整时间:<b id = 'adjustTime'> </b>
-
- </li>
- <li class = 'plantoolli' >
- 总加班时长:<b id = 'overtimeTotalTime' > </b>
- </li>
- </ul>
-
- <ul>
- <li class = 'plantoolli' >
- 早退次数:<b>${userAttendanceTotalPage.earlyLeaveAmount}次</b>
- </li>
- <li class = 'plantoolli' >
- 迟到次数:<b>${userAttendanceTotalPage.lateAmount}次</b>
-
- </li>
- <li class = 'plantoolli' >
- 未打卡次数:<b>${userAttendanceTotalPage.noPunchCardAmount}次</b>
-
- </li>
- <li class = 'plantoolli' >
- 旷工时长:<b id='absenteeismAmount'>${userAttendanceTotalPage.absenteeismAmount}小时</b>
- </li>
- </ul>
- <br>
- <br>
- <br>
- <ul style="padding-bottom: 20px">
- <li class = 'plantoolli' style="width: 48%;padding-right: 4%;">
- <table id = "xiujiatable" ></table>
- <!-- <div style=" background-color: #5187c9; width: 35px; height: 41px; ">
- 休假
- </div> -->
- <!-- <div style=" background-color: #5187c9; width: 35px; height: 41px; ">
- 休假
- </div> -->
-
- </li>
- <li class = 'plantoolli' style="width: 48%;">
- <!-- <div style=" background-color: #5187c9; width: 35px; height: 41px; ">
- 加班
- </div> -->
- <table id = "jiabantable" >
- </table>
-
- </li>
-
- </ul>
- <br>
- <br>
- <br>
- <ul >
- <li class = 'plantoolli' style="width: 100%;">
-
- <table id = "canbutable"></table>
- </li>
-
-
- </ul>
- </div>
- <div style=" margin-left: 43%;margin-top: 50px;">
- <td height="30px" align="center" colspan="4" >
- <div style="display:none"><input type="submit" id ="btnsub" value=""/></div>
- <a href="#" class="easyui-linkbutton l-btn" iconcls="icon-confirm" onclick="btn_ok()">确定</a>
- <a href="#" iconcls="icon-return" class="easyui-linkbutton l-btn" plain="true" onclick="history.go(-1)">返回</a>
- </td>
- </div>
-
- <script type="text/javascript">
- $(function(){
- $('#userattendancedetaillist').datagrid(
- {rownumbers : false});
- $('#xiujiatable').datagrid(
- {
- idField : 'id',
- title : '',
- rownumbers : false,
- loadMsg : '数据加载中...',
- pageSize : 10,
- pagination : false,
- pageList : [ 10, 20, 30 ],
- sortOrder : 'asc',
- singleSelect : true,
- fitColumns : true,
- striped : true,
- showFooter : true,
- frozenColumns : [ [] ],
- columns : [ [
- {
- field : 'id',
- title : '主键',
- width : 120,
- hidden : true,
- sortable : true
- },
- {
- field : 'paidLeave',
- title : '带薪假(日)',
- halign: 'center',
- align:'right',
- width : 120,
- hidden : false,
- sortable : false
- },
- {
- field : 'thingLeave',
- title : '事假',
- formatter:function(value,rec,index){
- return minsToHoursandMinsfmt(value,rec,index);
- },
- halign: 'center',
- align:'right',
- width : 100,
- hidden : false,
- sortable : false
- },
- {
- field : 'sickLeave',
- title : '病假',
- formatter:function(value,rec,index){
- return minsToHoursandMinsfmt(value,rec,index);
- },
- halign: 'center',
- align:'right',
- width : 100,
- hidden : false,
- sortable : false
- },
- {
- field : 'marriageLeave',
- title : '婚假(日)',
- halign: 'center',
- align:'right',
- width : 120,
- hidden : false,
- sortable : false
- },
- {
- field : 'funeralLeave',
- title : '丧假(日)',
- halign: 'center',
- align:'right',
- width : 120,
- hidden : false,
- sortable : false
- },
- {
- field : 'maternityLeave',
- title : '产假(日)',
- halign: 'center',
- align:'right',
- width : 100,
- hidden : false,
- sortable : false
- },
- {
- field : 'accompanyMaternityLeave',
- title : '陪产假(日)',
- halign: 'center',
- align:'right',
- width : 100,
- hidden : false,
- sortable : false
- },
- {
- field : 'exchangeTime',
- title : '调休',
- formatter:function(value,rec,index){
- return minsToHoursandMinsfmt(value,rec,index);
- },
- halign: 'center',
- align:'right',
- width : 100,
- hidden : false,
- sortable : false
- },
- ] ],
-
- });
- var jsonobj =JSON.parse( totalinfo.jsonObj);
- var sickLeavemin = jsonobj.sickLeavetotalmins;
- $('#xiujiatable').datagrid('loadData',[{
- paidLeave:totalinfo.paidLeave,
- thingLeave:totalinfo.thingLeave,
- sickLeave:sickLeavemin,
- marriageLeave:totalinfo.marriageLeave,
- funeralLeave:totalinfo.funeralLeave,
- maternityLeave:totalinfo.maternityLeave,
- accompanyMaternityLeave:totalinfo.accompanyMaternityLeave,
- exchangeTime:totalinfo.exchangeTime
- }]);
-
- $('#jiabantable').datagrid(
- {
- idField : 'id',
- title : '',
- rownumbers : false,
- loadMsg : '数据加载中...',
- pageSize : 10,
- pagination : false,
- pageList : [ 10, 20, 30 ],
- sortOrder : 'asc',
- singleSelect : true,
- fitColumns : true,
- align:'center',
- striped : true,
- showFooter : true,
- frozenColumns : [ [] ],
- columns : [ [
- {
- field : 'id',
- title : '主键',
- width : 120,
- hidden : true,
- sortable : true
- },
-
- {
- field : 'timeoutOvertimeDuration',
- title : '超时加班时长',
- width : 100,
- halign: 'center',
- align:'right',
- formatter:function(value,rec,index){
- return getOvertimeValue();
- },
- hidden : false,
- sortable : false
- },
- {
- field : 'nationalOvertimeDuration',
- title : '国定加班时长',
- halign: 'center',
- width : 110,
- align:'right',
- formatter:function(value,rec,index){
- return minsToHoursandMinsfmt(value,rec,index);
- },
- hidden : false,
- sortable : false
- },
- {
- field : 'dutyDuration',
- title : '普通值班天数(日)',
- halign: 'center',
- width : 110,
- align:'right',
- hidden : false,
- sortable : false
- },
- {
- field : 'nationalDutyDuration',
- title : '国定值班天数(日)',
- halign: 'center',
- width : 110,
- align:'right',
- hidden : false,
- sortable : false
- }/* ,
- {
- field : 'specialOvertime',
- title : '加班申请时长',
- halign: 'center',
- width : 110,
- align:'right',
- formatter:function(value,rec,index){
- return minsToHoursandMinsfmt(value,rec,index);
- },
- hidden : false,
- sortable : false
- } */
- ] ],
-
- });
-
- $('#jiabantable').datagrid('loadData',[{
- timeoutOvertimeDuration:totalinfo.timeoutOvertimeDuration,
- nationalOvertimeDuration:totalinfo.nationalOvertimeDuration,
- dutyDuration:totalinfo.dutyDuration,
- nationalDutyDuration:totalinfo.nationalDutyDuration/* ,
- specialOvertime:totalinfo.specialOvertime */
- }]);
- $('#canbutable').datagrid(
- {
- idField : 'id',
- title : '',
- rownumbers : false,
- loadMsg : '数据加载中...',
- pageSize : 10,
- titleAlign:'center',
- pagination : false,
- pageList : [ 10, 20, 30 ],
- sortOrder : 'asc',
- singleSelect : true,
- fitColumns : true,
- striped : true,
- showFooter : true,
- frozenColumns : [ [] ],
- columns : [ [
- {
- field : 'id',
- title : '主键',
- width : 120,
- hidden : true,
- sortable : true
- },
-
- {
- field : 'dayShiftSubsidy',
- title : '夜班白班津贴(顿)',
- halign: 'center',
- align:'right',
- width : 120,
- hidden : false,
- sortable : false
- },
- {
- field : 'nightShiftSubsidy',
- title : '夜班夜班津贴(顿)',
- halign: 'center',
- align:'right',
- width : 120,
- hidden : false,
- sortable : false
- },
- {
- field : 'dayShift',
- title : '日班(顿)',
- halign: 'center',
- align:'right',
- width : 120,
- hidden : false,
- sortable : false
- },
- {
- field : 'regularShift',
- title : '常班(顿)',
- halign: 'center',
- width : 120,
- align:'right',
- hidden : false,
- sortable : false
- } ,{
- field : 'dutyShift',
- title : '值班(顿)',
- halign: 'center',
- width : 120,
- align:'right',
- hidden : false,
- sortable : false
- } ,
- /*
- {
- field : 'extraOvertime',
- title : '加班餐费(元)',
- halign: 'center',
- width : 120,
- align:'right',
- hidden : false,
- sortable : false
- }, */
- ] ],
-
- });
-
- $('#canbutable').datagrid('loadData',[{
- dayShiftSubsidy:totalinfo.dayShiftSubsidy,
- nightShiftSubsidy:totalinfo.nightShiftSubsidy,
- dayShift:totalinfo.dayShift,
- regularShift:totalinfo.regularShift ,
- fixedValue:totalinfo.fixedValue , /* ,
- extraOvertime:totalinfo.overtimeMeal */
- dutyShift:totalinfo.dutyShift
- }]);
-
- $("#datumAttendanceDate").html(minsToHoursandMinsfmt(${userAttendanceTotalPage.datumAttendanceDate}));
- $("#actualAttendanceDate").html(minsToHoursandMinsfmt(${userAttendanceTotalPage.actualAttendanceDate}));
- $("#adjustTime").html(minsToHoursandMinsfmt(${userAttendanceTotalPage.adjustTime}));
- $("#overtimeTotalTime").html(minsToHoursandMinsfmt(${userAttendanceTotalPage.overtimeTotalTime}));
- $("#absenteeismAmount").html(getabsenteeValue());
-
-
- });
-
-
- function getabsenteeValue(){
- if(null == ${userAttendanceTotalPage.absenteeismAmount_orig}){
- return minsToHoursandMinsfmt(${userAttendanceTotalPage.absenteeismAmount});
- }else{
- return minsToHoursandMinsfmt(${userAttendanceTotalPage.absenteeismAmount});
- }
- }
- function getOvertimeValue(){
- if(null == ${userAttendanceTotalPage.timeoutOvertimeDuration_orig}){
- return minsToHoursandMinsfmt(${userAttendanceTotalPage.timeoutOvertimeDuration});
- }else{
- return minsToHoursandMinsfmt(${userAttendanceTotalPage.timeoutOvertimeDuration});
- }
- }
- function attendanceDatefmt(value, rec, index) {
- var s = new Date().format('MM-dd hh:mm', value);
- var result = s;
- var josnobj=JSON.parse(rec.jsonObj);
- if (undefined == josnobj.adjustRecord|| '0' == josnobj.adjustRecord) {
- } else {
- var pri = '';
- if(!(undefined == josnobj.primevalAttendanceDate|| null== josnobj.primevalAttendanceDate)){
- pri = (new Date(josnobj.primevalAttendanceDate)).Format('MM-dd hh:mm');
- }
- if(result!= pri){
- result = '<div style = "color: blue;font-weight: 800;">'
- + result + '</div> '+pri ;
- }
-
- }
- return result;
- }
- function fmstatus(val, row, index) {
- //可添加更多CSS样式
- var s0 = '';
- var s1 = 'background-color:#4bb15b;color:#4bb15b;';
- var s2 = 'background-color:#b2c038;color:#b2c038;';
- var s3 = 'background-color:#f4b93b;color:#f4b93b;';
- var s4 = 'background-color:#ee6f48;color:#ee6f48;';
- var s5 = 'background-color:#d34650;color:#d34650;';
- if (val == 1) {
- return s1
- } else if (val == 2) {
- return s2
- } else if (val == 3) {
- return s3
- } else if (val == 4) {
- return s4
- } else if (val == 5) {
- return s5
- } else {
- return s1
- }
- }
- function retreatDatefmt(value, rec, index) {
- var s = new Date().format('MM-dd hh:mm', value);
- var result = s;
- var josnobj=JSON.parse(rec.jsonObj);
-
- if (undefined == josnobj.adjustRecord|| '0' == josnobj.adjustRecord) {
- } else {
- var pri = '';
- if(!(undefined == josnobj.primevalRetreatDate|| null== josnobj.primevalRetreatDate)){
- pri = (new Date(josnobj.primevalRetreatDate)).Format('MM-dd hh:mm');
- }
-
- if(result!= pri){
- result = ' <div style = "color: blue;font-weight: 800;">'
- + result + '</div> '+pri ;
- }
-
- }
- return result;
- }
- function btn_ok() {
- var url = 'userAttendanceTotalController.do?${backurl}&queryParams='+encodeURI('${queryParams}');
- window.location.href = url;
- }
- </script>
|