You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

146 lines
8.2 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<%@ page import="weaver.general.*" %>
<%@ page import="weaver.hrm.User" %>
<%@ page import="weaver.hrm.HrmUserVarify" %>
<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="java.util.*" %>
<%@ page import="weaver.systeminfo.SystemEnv" %>
<%@ page import="weaver.common.DateUtil" %>
<%@ page import="com.engine.kq.util.PageUidFactory" %>
<%@ page import="com.cloudstore.dev.api.util.Util_TableMap" %>
<%@ page import="com.engine.common.util.ParamUtil" %>
<%@ page import="weaver.hrm.resource.ResourceComInfo" %>
<%@ page import="com.engine.kq.service.KQMyAttendanceService" %>
<%@ page import="com.engine.common.util.ServiceUtil" %>
<%@ page import="com.engine.kq.service.impl.KQMyAttendanceServiceImpl" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%
Map<String,Object> data = new HashMap<String,Object>();
User user = HrmUserVarify.getUser(request , response);
Map<String, Object> params = ParamUtil.request2Map(request);
String kqtype = Util.null2String(params.get("kqtype"));
if("BELATE".equalsIgnoreCase(kqtype) || "graveBeLate".equalsIgnoreCase(kqtype)){
data = getBeLateList(params,user);
data.put("api_status", true);
}else{
data = getService(user).getHrmKQReportInfo(ParamUtil.request2Map(request), user);
data.put("api_status", true);
}
JSONObject jsonObject = new JSONObject(data);
%>
<%=jsonObject.toJSONString() %>
<%!
private KQMyAttendanceService getService(User user){
return (KQMyAttendanceService) ServiceUtil.getService(KQMyAttendanceServiceImpl.class, user);
}
/**
* 获取迟到明细列表
*
* @return
*/
public Map<String, Object> getBeLateList(Map<String, Object> params,User user)
{
Map<String, Object> resultMap = new HashMap<String, Object>();
try {
String nowdate = weaver.common.DateUtil.getCurrentDate();
String type = Util.null2String(params.get("type"));//是查看一年的数据还是一月的数据1-年、2-月
String typevalue = Util.null2String(params.get("typevalue"));//指定的年份或者指定的月份
String fromDate = Util.null2String(params.get("fromDate"));//指定日期起点
String toDate = Util.null2String(params.get("toDate"));//指定日期终点
int subCompanyId = Util.getIntValue((String) params.get("subCompanyId"), 0);//指定查看的人员的所属分部
int departmentId = Util.getIntValue((String) params.get("departmentId"), 0);//指定查看的人员的所属部门
String resourceId = Util.null2String(params.get("resourceId"));//指定查看的人员ID
String status = Util.null2String(params.get("status"));//?
String tabKey = Util.null2String(params.get("tabKey"));//是迟到还是严重迟到2-严重迟到、其他-迟到
/**
* 若未指定查看人员,则默认为当前登录人员
*/
if (resourceId.length() == 0) {
resourceId = "" + user.getUID();
}
/**
* 获取指定日期的起点和终点
*/
if (type.equals("1")) {//年
if (typevalue.length() == 0 || typevalue.length() != 4) {
typevalue = weaver.common.DateUtil.getYear();
}
fromDate = typevalue + "-01-01";
toDate = weaver.common.DateUtil.getLastDayOfYear(weaver.common.DateUtil.parseToDate(fromDate));
} else if (type.equals("2")) {//月
if (typevalue.length() == 0) {
typevalue = weaver.common.DateUtil.getYear() + "-" + weaver.common.DateUtil.getMonth();
}
fromDate = typevalue + "-01";
toDate = weaver.common.DateUtil.getLastDayOfMonthToString(DateUtil.parseToDate(fromDate));
}
/**获取今天的日期*/
Calendar today = Calendar.getInstance();
String currentdate = Util.add0(today.get(Calendar.YEAR), 4) + "-"
+ Util.add0(today.get(Calendar.MONTH) + 1, 2) + "-"
+ Util.add0(today.get(Calendar.DAY_OF_MONTH), 2);
/**
* 获取明细列表
*/
String backFields = " a.id, b.resourceid,a.departmentid, a.lastname, a.workcode, a.status, a.dsporder, kqdate, serialid, serialid as serialid1," +
" workbegintime,workendtime, signintime,signouttime, (beLateMins+graveBeLateMins) as beLateMins";
String sqlFrom = "from hrmresource a, kq_format_detail b ";
String sqlWhere = " where a.id = b.resourceid";
String orderBy = " kqdate asc, workbegintime asc ";
if (fromDate.length() > 0) {
sqlWhere += " and kqdate >= '" + fromDate + "'";
}
if (toDate.length() > 0) {
sqlWhere += " and kqdate <= '" + toDate + "'";
}
if (resourceId.length() > 0) {
sqlWhere += " and resourceid = " + resourceId;
}
sqlWhere += " and (graveBeLateMins>0 or beLateMins>0 )";
String pageUid = PageUidFactory.getHrmPageUid("KQReportDetialList");
String tableString ="" +
" <table pageUid=\"" + pageUid + "\" pagesize=\"10\" tabletype=\"none\">" +
" <sql backfields=\"" + backFields + "\" sqlform=\"" + Util.toHtmlForSplitPage(sqlFrom) + "\" sqlprimarykey=\"a.id\" sqlorderby=\"" + orderBy + "\" sqlsortway=\"asc\" sqldistinct=\"true\" sqlwhere=\"" + Util.toHtmlForSplitPage(sqlWhere) + "\"/>" +
" <head>" +
" <col width=\"10%\" text=\"" + SystemEnv.getHtmlLabelName(413, user.getLanguage()) + "\" column=\"lastname\" orderkey=\"lastname\"/>" +
" <col width=\"10%\" text=\"" + SystemEnv.getHtmlLabelName(714, user.getLanguage()) + "\" column=\"workcode\" orderkey=\"workcode\"/>" +
" <col width=\"15%\" text=\"" + SystemEnv.getHtmlLabelName(124, user.getLanguage()) + "\" column=\"departmentid\" orderkey=\"departmentid\" transmethod=\"weaver.hrm.company.DepartmentComInfo.getDepartmentname\"/>" +
" <col width=\"10%\" text=\"" + SystemEnv.getHtmlLabelName(602, user.getLanguage()) + "\" column=\"status\" orderkey=\"status\" transmethod=\"weaver.hrm.resource.ResourceComInfo.getStatusName\" otherpara=\"" + user.getLanguage() + "\"/>" +
" <col width=\"15%\" text=\"" + SystemEnv.getHtmlLabelName(97, user.getLanguage()) + "\" column=\"kqdate\" orderkey=\"kqdate\"/>" +
" <col width=\"20%\" text=\"" + SystemEnv.getHtmlLabelName(390054, user.getLanguage()) + "\" column=\"serialid\" orderkey=\"serialid\" transmethod=\"com.engine.kq.util.TransMethod.getSerailName\" otherpara=\"column:workbegintime+column:workendtime\"/>" +
" <col width=\"10%\" text=\"" + SystemEnv.getHtmlLabelName(18949, user.getLanguage()) + "\" column=\"serialid1\" orderkey=\"serialid1\" transmethod=\"com.engine.kq.util.TransMethod.getReportDetialSignTime\" otherpara=\"column:signintime++column:kqdate+column:resourceid+" + user.getLanguage() + "\"/>";
tableString += " <col width=\"10%\" text=\"" + SystemEnv.getHtmlLabelName(391413, user.getLanguage()) + "\" column=\"beLateMins\" orderkey=\"beLateMins\" transmethod=\"com.engine.kq.util.TransMethod.getReportDetialMinToHour\" />";
tableString += "</head>" +
"</table>";
//主要用于 显示定制列以及 表格 每页展示记录数选择
String sessionkey = pageUid + "_" + Util.getEncrypt(Util.getRandom());
Util_TableMap.setVal(sessionkey, tableString);
resultMap.put("sessionkey", sessionkey);
resultMap.put("status", "1");
} catch (Exception e) {
resultMap.put("status", "-1");
resultMap.put("message", SystemEnv.getHtmlLabelName(382661, user.getLanguage()));
e.printStackTrace();
}
return resultMap;
}
%>