userAttendanceTotalauditlist.jsp 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@include file="/context/mytags.jsp"%>
  3. <t:base type="jquery,easyui,tools,DatePicker"></t:base>
  4. <link rel="stylesheet" type="text/css" href="css/commoncss.css"/>
  5. <div class="easyui-layout" fit="true">
  6. <div region="center" style="padding:0px;border:0px">
  7. <t:datagrid name="userAttendanceTotalList"
  8. autoLoadData="false"
  9. checkbox="true" fitColumns="true" title="考勤审核"
  10. actionUrl="userAttendanceTotalController.do?auditdatagrid" idField="id" fit="true" queryMode="group">
  11. <t:dgCol title="主键" field="id" hidden="true" queryMode="single" width="120"></t:dgCol>
  12. <t:dgCol title="员工工号" field="userCode" queryMode="single" width="120"></t:dgCol>
  13. <t:dgCol title="员工姓名" field="userId" queryMode="single" dictionary="t_s_base_user,id,realname" width="120"></t:dgCol>
  14. <t:dgCol title="月度" field="yearmonth" style="text-align:center," queryMode="single" width="100"></t:dgCol>
  15. <t:dgCol title="所属部门" field="departid" dictionary="t_s_depart,id,departname, and org_type != '1' " queryMode="single" width="120"></t:dgCol>
  16. <t:dgCol title="所属岗位" field="inPostid" defaultVal="${queryParams.inPostid}" dictionary="t_bus_post,id,post_name, and delete_flag = 0 and status = 0 " query="false" queryMode="single" width="120"></t:dgCol>
  17. <t:dgCol title="应出勤时长" field="datumAttendanceDate" formatterjs="minsToHoursandMinsfmt" style="text-align:right," queryMode="single" width="120"></t:dgCol>
  18. <t:dgCol title="实际出勤时长" field="actualAttendanceDate" formatterjs="minsToHoursandMinsfmt" style="text-align:right," queryMode="single" width="120"></t:dgCol>
  19. <t:dgCol title="全月时间差" field="timeDifferenceTotal" formatterjs="minsToHoursandMinsfmt" style="text-align:right," queryMode="single" width="120"></t:dgCol>
  20. <t:dgCol title="加班时长" field="overtimeTotalTime" formatterjs="minsToHoursandMinsfmt" style="text-align:right," queryMode="single" width="120"></t:dgCol>
  21. <t:dgCol title="休假时长" field="leaveTotalTime" formatterjs="minsToHoursandMinsfmt" style="text-align:right," queryMode="single" width="120"></t:dgCol>
  22. <t:dgCol title="调整记录" field="adjustRecord" defaultVal="${queryParams.adjustRecord}" style="text-align:center," dictionary="attendance_adjust_status" queryMode="single" query="false" width="120"></t:dgCol>
  23. <t:dgCol title="状态" field="confirmStatus" defaultVal="${queryParams.confirmStatus}" style="text-align:center," query="false" dictionary="attendance_report_status" queryMode="single" width="120"></t:dgCol>
  24. <t:dgToolBar title="查看" operationCode="detailbtn" icon="icon-view" url="userAttendanceTotalController.do?goUpdate&conform=auditlist" funname="update"></t:dgToolBar>
  25. <t:dgToolBar title="审核通过" icon="icon-confirm" url="userAttendanceTotalController.do?doBatchAudit&confirmStatus=2" funname="BatchAudit"></t:dgToolBar>
  26. <t:dgToolBar title="退回" icon="icon-withdraw" url="userAttendanceTotalController.do?doBatchAudit&confirmStatus=1" funname="BatchAudit"></t:dgToolBar>
  27. <t:dgToolBar title="导出" icon="icon-put" operationCode="put" funname="ExportXls"></t:dgToolBar>
  28. </t:datagrid>
  29. </div>
  30. </div>
  31. <div id="pinjie1">
  32. <div name="pinjie2" style="padding:3px; height: auto" class="datagrid-toolbar">
  33. <table style="height:85px;padding:0px" cellpadding="0" cellspacing="1" >
  34. <tbody>
  35. <tr>
  36. <td align="right" style="width: 74px;">
  37. <label class="Validform_label">
  38. <span color="red" class="requiredIcon">*</span>项目名称:
  39. </label>
  40. </td>
  41. <td class="value">
  42. <input readonly="true" type="text" id="departname" value="${queryParams.departname}" name="departname" style="width: 157px" placeholder="请选择项目名称" onclick="openDepartmentSelect()"/>
  43. <input id="departid" name='departid' type="hidden" value="${queryParams.departid}" />
  44. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-select" id="departSearch" onclick="openDepartmentSelect()">选择</a>
  45. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-clean" id="departRedo" onclick="callbackClean()">清空</a>
  46. </td>
  47. <td align="right" style="width: 74px;">
  48. <label class="Validform_label">
  49. 员工姓名:
  50. </label>
  51. </td>
  52. <td class="value">
  53. <input type="text" id="userId" name="userId" value="${queryParams.userId}" style="width: 157px" placeholder="请输入员工姓名" />
  54. </td>
  55. <td align="right" style="width: 74px;">
  56. <label class="Validform_label">
  57. 月度:
  58. </label>
  59. </td>
  60. <td class="value">
  61. <input type="text" id="yearmonth" name="yearmonth" style="width: 157px" value="${queryParams.yearmonth}" class="Wdate" onClick='WdatePicker({readOnly:true,maxDate:"${maxdate}",enableKeyboard:false,enableInputMask:false,dateFmt: "yyyy-MM"})' />
  62. </td>
  63. </tr>
  64. <tr>
  65. <td align="right">
  66. <label class="Validform_label">
  67. 所属岗位:
  68. </label>
  69. </td>
  70. <td class="value">
  71. <t:dictSelect field="inPostid" defaultVal="${queryParams.inPostid}" dictTable="t_bus_post" dictCondition="where delete_flag=0 and status=0" dictField="id" dictText="post_name" title="所属岗位" ></t:dictSelect>
  72. </td>
  73. <td align="right">
  74. <label class="Validform_label">
  75. 调整记录:
  76. </label>
  77. </td>
  78. <td class="value">
  79. <t:dictSelect field="adjustRecord" type="select" defaultVal="${queryParams.adjustRecord}" typeGroupCode="attendance_adjust_status" hasLabel="false" title="调整记录" ></t:dictSelect>
  80. </td>
  81. <td align="right">
  82. <label class="Validform_label">
  83. 状态:
  84. </label>
  85. </td>
  86. <td class="value">
  87. <t:dictSelect field="confirmStatus" type="select" defaultVal="${queryParams.confirmStatus}" typeGroupCode="attendance_report_status" hasLabel="false" title="状态" ></t:dictSelect>
  88. </td>
  89. </tr>
  90. </tbody>
  91. </table>
  92. </div>
  93. </div>
  94. <div id="pinjiechaxun1">
  95. <div name="pinjiechaxun2" style="padding:3px; height: auto" class="datagrid-toolbar">
  96. <div style="float: right;">
  97. <span>
  98. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-search" id="userAttendanceTotalSearch" onclick="userAttendanceTotalListsearch()">查询</a>
  99. </span>
  100. <span>
  101. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-reload " id="userAttendanceTotalRedo" onclick="searchReset('userAttendanceTotalList')">重置</a>
  102. </span>
  103. </div>
  104. </div>
  105. </div>
  106. <!--
  107. <div id="yearmonth1" style="display: none;">
  108. <label class="Validform_label">
  109. &nbsp;&nbsp;&nbsp;&nbsp;<span color="red" class="requiredIcon">*</span>项目名称:
  110. </label>
  111. <input readonly="true" type="text" id="departname" name="departname" value="${queryParams.departname}" style="width: 150px" placeholder="请选择项目名称" onclick="openDepartmentSelect()"/>
  112. <input id="departid" name='departid' type="hidden" value="${queryParams.departid}"/>
  113. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-search" id="departSearch" onclick="openDepartmentSelect()">选择</a>
  114. <a href="#" class="easyui-linkbutton" plain="true" icon="icon-redo" id="departRedo" onclick="callbackClean()">清空</a>
  115. <label class="Validform_label">
  116. &nbsp;&nbsp;&nbsp;&nbsp;员工姓名:
  117. </label>
  118. <input type="text" id="userId" name="userId" value="${queryParams.userId}" style="width: 150px" placeholder="请输入员工姓名" />
  119. <label class="Validform_label">
  120. &nbsp;&nbsp;&nbsp;&nbsp;月度:
  121. </label>
  122. <input type="text" id="yearmonth" name="yearmonth" value="${queryParams.yearmonth}" class="Wdate" onClick='WdatePicker({readOnly:true,maxDate:"${maxdate}",enableKeyboard:false,enableInputMask:false,dateFmt: "yyyy-MM"})' />
  123. </div>
  124. -->
  125. <script type="text/javascript">
  126. $(function() {
  127. /**
  128. var datagrid = $("#userAttendanceTotalListtb");
  129. datagrid.find("div[name='searchColums']").find("form#userAttendanceTotalListForm").prepend($("#yearmonth1").html());
  130. $("#yearmonth1").html('');
  131. */
  132. var datagrid = $("#userAttendanceTotalListtb");
  133. datagrid.prepend($("#pinjie1 div[name='pinjie2']").html());
  134. $("#pinjie1").html('');
  135. datagrid.children(".datagrid-toolbar").children("span:first").after($("#pinjiechaxun1 div[name='pinjiechaxun2']").html());
  136. $("#pinjiechaxun1").html('');
  137. var queryParams = $('#userAttendanceTotalList').datagrid('options').queryParams;
  138. $('#userAttendanceTotalListtb').find('*').each(function() {
  139. queryParams[$(this).attr('name')] = $(this).val();
  140. });
  141. if(null!= queryParams.departid&&''!=queryParams.departid){
  142. userAttendanceTotalListsearch();
  143. }
  144. // userAttendanceTotalListsearch();
  145. });
  146. //导入
  147. function ImportXls() {
  148. openuploadwin('Excel导入', 'userAttendanceTotalController.do?upload', "userAttendanceTotalList");
  149. }
  150. //导出
  151. function ExportXls() {
  152. JeecgExcelExport("userAttendanceTotalController.do?auditexportXls","userAttendanceTotalList");
  153. }
  154. //选择项目名称,列表================
  155. function openDepartmentSelect() {
  156. //$.dialog.setting.zIndex = getzIndex();
  157. var orgIds = $("#departid").val();
  158. $.dialog({
  159. content: 'url:dialogDealController.do?projectDepartTableAll&ids='+orgIds, zIndex: getzIndex(),
  160. title: '项目列表', lock: true, width: '600px', height: '350px', opacity: 0.4, button: [
  161. {name: '<t:mutiLang langKey="common.confirm"/>', callback: function (){
  162. var iframe = this.iframe.contentWindow;
  163. if(iframe.getReason().length>0){
  164. var strData=eval(iframe.getReason());
  165. for(var key in strData[0]){
  166. if(key=="strPId"){
  167. $("#departid").val(strData[0][key]);
  168. }else if(key=="strDepartName"){
  169. $("#departname").val(strData[0][key]);
  170. }
  171. }
  172. }
  173. }, focus: true},
  174. {name: '<t:mutiLang langKey="common.cancel"/>', callback: function (){}}
  175. ]}).zindex();
  176. }
  177. //模板下载
  178. function ExportXlsByT() {
  179. JeecgExcelExport("userAttendanceTotalController.do?exportXlsByT","userAttendanceTotalList");
  180. }
  181. function callbackClean(){
  182. $('#departname').val('');
  183. $('#departid').val('');
  184. }
  185. /**
  186. * 批量确认
  187. * @param title
  188. * @param url
  189. * @param gname
  190. * @return
  191. */
  192. function BatchAudit(title,url,gname) {
  193. gridname=gname;
  194. var ids = [];
  195. var rows = $("#"+gname).datagrid('getSelections');
  196. if (rows.length > 0) {
  197. for ( var i = 0; i < rows.length; i++) {
  198. ids.push(rows[i].id);
  199. }
  200. $.ajax({
  201. url : url,
  202. type : 'post',
  203. data : {
  204. ids : ids.join(',')
  205. },
  206. cache : false,
  207. success : function(data) {
  208. var d = data; // ------ $.parseJSON(data);
  209. if (d.success) {
  210. var msg = d.msg;
  211. tip(msg);
  212. reloadTable();
  213. $("#"+gname).datagrid('unselectAll');
  214. ids='';
  215. } else {
  216. layer.alert(d.msg);
  217. }
  218. }
  219. });
  220. } else {
  221. layer.alert("请选择需要确认的数据");
  222. }
  223. }
  224. //新增
  225. function add(title,url,id){
  226. window.location.href=url
  227. }
  228. function update(title, url, id) {
  229. var rowsData = $('#' + id).datagrid('getSelections');
  230. if (!rowsData || rowsData.length == 0) {
  231. layer.alert('请选择编辑项目');
  232. return;
  233. }
  234. if (rowsData.length > 1) {
  235. layer.alert('请选择一条记录再编辑');
  236. return;
  237. }
  238. url += '&id=' + rowsData[0].id;
  239. var queryParams = $('#userAttendanceTotalList').datagrid('options').queryParams;
  240. $('#userAttendanceTotalListtb').find('*').each(function() {
  241. queryParams[$(this).attr('name')] = $(this).val();
  242. });
  243. url +="&queryParams="+JSON.stringify(queryParams);
  244. if (rowsData[0].confirmStatus != '2') {
  245. window.location.href = url;
  246. } else {
  247. layer.alert('该考勤已确认, 不可再编辑');
  248. }
  249. // updateNotCreateWin("修改",url, "userAttendanceTotalList",false);
  250. }
  251. //查看
  252. function view(title,url, id){
  253. viewNotCreateWin("查看",url, "userAttendanceTotalList",false)
  254. }
  255. function userAttendanceTotalListsearch() {
  256. try {
  257. if (!$("#userAttendanceTotalListForm").Validform({
  258. tiptype : 3
  259. }).check()) {
  260. return false;
  261. }
  262. } catch (e) {
  263. }
  264. if (true) {
  265. var queryParams = $('#userAttendanceTotalList').datagrid('options').queryParams;
  266. $('#userAttendanceTotalListtb').find('*').each(function() {
  267. queryParams[$(this).attr('name')] = $(this).val();
  268. });
  269. if(queryParams.departid ==null||queryParams.departid ==''){
  270. layer.alert('项目名称必须输入');
  271. return false;
  272. }
  273. $('#userAttendanceTotalList')
  274. .datagrid(
  275. {
  276. url : 'userAttendanceTotalController.do?auditdatagrid&field=id,userCode,userId,yearmonth,departid,inPostid,datumAttendanceDate,actualAttendanceDate,timeDifferenceTotal,overtimeTotalTime,leaveTotalTime,adjustRecord,confirmStatus,',
  277. pageNumber : 1
  278. });
  279. }
  280. }
  281. </script>