200 lines
11 KiB
Plaintext
200 lines
11 KiB
Plaintext
<%@ page language="java" pageEncoding="UTF-8"%>
|
||
<%@ page import="java.util.Map" %>
|
||
<%@ page import="weaver.hrm.User" %>
|
||
<%@ page import="java.util.HashMap" %>
|
||
<%@ page import="weaver.general.Util,weaver.general.BaseBean" %>
|
||
<%@ page import="weaver.hrm.HrmUserVarify" %>
|
||
<%@ page import="weaver.systeminfo.SystemEnv" %>
|
||
<%@ page import="weaver.hrm.attendance.domain.*"%>
|
||
<%@ page import="weaver.hrm.attendance.manager.*"%>
|
||
<%@ page import="weaver.hrm.schedule.HrmAnnualManagement"%>
|
||
<%@ page import="weaver.hrm.schedule.HrmPaidSickManagement"%>
|
||
<%@ page import="weaver.hrm.schedule.manager.HrmScheduleManager"%>
|
||
<%@ page import="net.sf.json.JSONObject,weaver.common.StringUtil" %>
|
||
<%@ page import="weaver.mobile.webservices.workflow.WorkflowService" %>
|
||
<%@ page import="weaver.mobile.webservices.workflow.WorkflowServiceImpl" %>
|
||
<%@page import="java.util.List"%>
|
||
<%@page import="java.util.ArrayList"%>
|
||
<jsp:useBean id="attProcSetManager" class="weaver.hrm.attendance.manager.HrmAttProcSetManager" scope="page" />
|
||
<jsp:useBean id="strUtil" class="weaver.common.StringUtil" scope="page" />
|
||
<jsp:useBean id="colorManager" class="weaver.hrm.attendance.manager.HrmLeaveTypeColorManager" scope="page" />
|
||
<%
|
||
BaseBean logBean = new BaseBean();
|
||
//获取当前
|
||
try{
|
||
String action = StringUtil.vString(request.getParameter("action"));
|
||
String _cmd = StringUtil.vString(request.getParameter("cmd"));
|
||
User user = HrmUserVarify.getUser (request , response) ;
|
||
if(user == null) return ;
|
||
if("getLeaveDays".equals(action)){
|
||
String fromDate = StringUtil.vString(request.getParameter("fromDate"));
|
||
String fromTime = StringUtil.vString(request.getParameter("fromTime"));
|
||
String toDate = StringUtil.vString(request.getParameter("toDate"));
|
||
String toTime = StringUtil.vString(request.getParameter("toTime"));
|
||
String resourceId = StringUtil.vString(request.getParameter("resourceId"));
|
||
String newLeaveType = StringUtil.vString(request.getParameter("newLeaveType"));
|
||
boolean worktime = Boolean.parseBoolean(StringUtil.vString(request.getParameter("worktime"), "true"));
|
||
WorkflowService wfService = new WorkflowServiceImpl();
|
||
String result = wfService.getLeaveDays(fromDate, fromTime, toDate, toTime, resourceId, worktime,newLeaveType);
|
||
|
||
Map daymap = new HashMap();
|
||
daymap.put("resourceId", resourceId);
|
||
daymap.put("days", result);
|
||
|
||
JSONObject jo = JSONObject.fromObject(daymap);
|
||
result = jo.toString();
|
||
out.print(result);
|
||
} else if(_cmd.equals("leaveInfo")) {
|
||
String result = "";
|
||
String allannualValue = "";
|
||
String allpsldaysValue = "";
|
||
String paidLeaveDaysValue = "";
|
||
String strRealAllannualValue = "";
|
||
String strRealAllpsldaysValue = "";
|
||
String strRealPaidLeaveDaysValue = "";
|
||
float realAllannualValue = 0;
|
||
float realAllpsldaysValue = 0;
|
||
float realPaidLeaveDaysValue = 0;
|
||
String currentDate = StringUtil.vString(request.getParameter("currentDate"));
|
||
String resourceId = StringUtil.vString(request.getParameter("resourceId"));
|
||
String bohai = StringUtil.vString(request.getParameter("bohai"));
|
||
int workflowid = StringUtil.parseToInt(request.getParameter("workflowid"));
|
||
int nodetype = StringUtil.parseToInt(request.getParameter("nodetype"));
|
||
int nodeid = StringUtil.parseToInt(request.getParameter("nodeid"));
|
||
HrmAttVacationManager attVacationManager = new HrmAttVacationManager();
|
||
if("getAnnualInfo".equals(action)){
|
||
String userannualinfo = HrmAnnualManagement.getUserAannualInfo(resourceId,currentDate);
|
||
String thisyearannual = Util.TokenizerString2(userannualinfo,"#")[0];
|
||
String lastyearannual = Util.TokenizerString2(userannualinfo,"#")[1];
|
||
String allannual = Util.TokenizerString2(userannualinfo,"#")[2];
|
||
allannualValue = allannual;
|
||
float[] freezeDays = attVacationManager.getFreezeDays(resourceId,currentDate);
|
||
if(freezeDays[0] > 0) allannual += " - "+freezeDays[0];
|
||
realAllannualValue = strUtil.parseToFloat(allannualValue, 0);
|
||
if(bohai.equals("true")){
|
||
realAllannualValue = (float)strUtil.round(realAllannualValue - freezeDays[0]);
|
||
}else{
|
||
if(attProcSetManager.isFreezeNodeId(workflowid, nodeid)) {
|
||
realAllannualValue = (float)strUtil.round(realAllannualValue - freezeDays[0]);
|
||
}
|
||
}
|
||
result = SystemEnv.getHtmlLabelName(21614,user.getLanguage())+" : "+lastyearannual+"\r\n"+SystemEnv.getHtmlLabelName(21615,user.getLanguage())+" : "+thisyearannual+"\r\n"+SystemEnv.getHtmlLabelName(21616,user.getLanguage())+" : "+allannual;
|
||
} else if("getPSInfo".equals(action)){
|
||
String leavetype = Util.null2String(request.getParameter("leavetype"));
|
||
List listtypes = new ArrayList();
|
||
String typeName = "";
|
||
if(leavetype.length() > 0){
|
||
listtypes = colorManager.find(colorManager.getMapParam("field004:"+leavetype));
|
||
HrmLeaveTypeColor tmpbean = (HrmLeaveTypeColor)listtypes.get(0);
|
||
typeName = tmpbean.getField001();
|
||
}
|
||
String userpslinfo = HrmPaidSickManagement.getUserPaidSickInfo(resourceId, currentDate,leavetype);
|
||
String thisyearpsldays = ""+Util.getFloatValue(Util.TokenizerString2(userpslinfo,"#")[0], 0);
|
||
String lastyearpsldays = ""+Util.getFloatValue(Util.TokenizerString2(userpslinfo,"#")[1], 0);
|
||
String allpsldays = ""+Util.getFloatValue(Util.TokenizerString2(userpslinfo,"#")[2], 0);
|
||
allpsldaysValue = allpsldays;
|
||
float freezeDays = attVacationManager.getPaidFreezeDays(resourceId,leavetype);
|
||
if(freezeDays > 0) allpsldays += " - "+freezeDays;
|
||
realAllpsldaysValue = strUtil.parseToFloat(allpsldaysValue, 0);
|
||
if(bohai.equals("true")){
|
||
realAllpsldaysValue = (float)strUtil.round(realAllpsldaysValue - freezeDays);
|
||
}else{
|
||
|
||
if(attProcSetManager.isFreezeNodeId(workflowid, nodeid)) {
|
||
realAllpsldaysValue = (float)strUtil.round(realAllpsldaysValue - freezeDays);
|
||
}
|
||
}
|
||
String combinelabelPS1 = SystemEnv.getHtmlLabelName(131649,user.getLanguage());
|
||
String combinelabelPS2 = SystemEnv.getHtmlLabelName(131650,user.getLanguage());
|
||
String combinelabelPS3 = SystemEnv.getHtmlLabelName(131651,user.getLanguage());
|
||
|
||
if(typeName.length() > 0){
|
||
combinelabelPS1 = SystemEnv.getHtmlLabelName(382185,user.getLanguage())+typeName+SystemEnv.getHtmlLabelName(496,user.getLanguage());
|
||
combinelabelPS2 = SystemEnv.getHtmlLabelName(382186,user.getLanguage())+typeName+SystemEnv.getHtmlLabelName(496,user.getLanguage());
|
||
combinelabelPS3 = SystemEnv.getHtmlLabelName(382187,user.getLanguage())+typeName+SystemEnv.getHtmlLabelName(496,user.getLanguage());
|
||
}
|
||
|
||
result = combinelabelPS1+" : "+lastyearpsldays+"\r\n"+combinelabelPS2+" : "+thisyearpsldays+"\r\n"+combinelabelPS3+" : "+allpsldays;
|
||
} else if("getTXInfo".equals(action)){
|
||
HrmPaidLeaveTimeManager paidLeaveTimeManager = new HrmPaidLeaveTimeManager();
|
||
String paidLeaveDays = String.valueOf(paidLeaveTimeManager.getCurrentPaidLeaveDaysByUser(resourceId, currentDate, true));
|
||
paidLeaveDaysValue = paidLeaveDays;
|
||
float[] freezeDays = attVacationManager.getFreezeDays(resourceId);
|
||
realPaidLeaveDaysValue = strUtil.parseToFloat(paidLeaveDaysValue, 0);
|
||
if(freezeDays[2] > 0) paidLeaveDays += " - "+freezeDays[2];
|
||
if(bohai.equals("true")){
|
||
realPaidLeaveDaysValue = (float)strUtil.round(realPaidLeaveDaysValue - freezeDays[2]);
|
||
}else{
|
||
if(attProcSetManager.isFreezeNodeId(workflowid, nodeid)) {
|
||
realPaidLeaveDaysValue = (float)strUtil.round(realPaidLeaveDaysValue - freezeDays[2]);
|
||
}
|
||
}
|
||
result = SystemEnv.getHtmlLabelName(82854,user.getLanguage())+" : "+paidLeaveDays;
|
||
}else if("initInfo".equals(action)){
|
||
String userannualinfo = HrmAnnualManagement.getUserAannualInfo(resourceId,currentDate);
|
||
String thisyearannual = Util.TokenizerString2(userannualinfo,"#")[0];
|
||
String lastyearannual = Util.TokenizerString2(userannualinfo,"#")[1];
|
||
String allannual = Util.TokenizerString2(userannualinfo,"#")[2];
|
||
allannualValue = allannual;
|
||
float[] freezeDays = attVacationManager.getFreezeDays(resourceId,currentDate);
|
||
if(freezeDays[0] > 0) allannual += " - "+freezeDays[0];
|
||
realAllannualValue = strUtil.parseToFloat(allannualValue, 0);
|
||
if(bohai.equals("true")){
|
||
realAllannualValue = (float)strUtil.round(realAllannualValue - freezeDays[0]);
|
||
}else{
|
||
if(attProcSetManager.isFreezeNodeId(workflowid, nodeid)) {
|
||
realAllannualValue = (float)strUtil.round(realAllannualValue - freezeDays[0]);
|
||
}
|
||
}
|
||
String leavetype = Util.null2String(request.getParameter("leavetype"));
|
||
String userpslinfo = HrmPaidSickManagement.getUserPaidSickInfo(resourceId, currentDate,leavetype);
|
||
String thisyearpsldays = ""+Util.getFloatValue(Util.TokenizerString2(userpslinfo,"#")[0], 0);
|
||
String lastyearpsldays = ""+Util.getFloatValue(Util.TokenizerString2(userpslinfo,"#")[1], 0);
|
||
String allpsldays = ""+Util.getFloatValue(Util.TokenizerString2(userpslinfo,"#")[2], 0);
|
||
allpsldaysValue = allpsldays;
|
||
float freezePaidDays = attVacationManager.getPaidFreezeDays(resourceId,leavetype);
|
||
if(freezePaidDays > 0) allpsldays += " - "+freezeDays;
|
||
realAllpsldaysValue = strUtil.parseToFloat(allpsldaysValue, 0);
|
||
if(bohai.equals("true")){
|
||
realAllpsldaysValue = (float)strUtil.round(realAllpsldaysValue - freezePaidDays);
|
||
}else{
|
||
if(attProcSetManager.isFreezeNodeId(workflowid, nodeid)) {
|
||
realAllpsldaysValue = (float)strUtil.round(realAllpsldaysValue - freezePaidDays);
|
||
}
|
||
}
|
||
HrmPaidLeaveTimeManager paidLeaveTimeManager = new HrmPaidLeaveTimeManager();
|
||
String paidLeaveDays = String.valueOf(paidLeaveTimeManager.getCurrentPaidLeaveDaysByUser(resourceId, currentDate, true));
|
||
paidLeaveDaysValue = paidLeaveDays;
|
||
realPaidLeaveDaysValue = strUtil.parseToFloat(paidLeaveDaysValue, 0);
|
||
if(freezeDays[2] > 0) paidLeaveDays += " - "+freezeDays[2];
|
||
if(bohai.equals("true")){
|
||
realPaidLeaveDaysValue = (float)strUtil.round(realPaidLeaveDaysValue - freezeDays[2]);
|
||
}else{
|
||
if(attProcSetManager.isFreezeNodeId(workflowid, nodeid)) {
|
||
realPaidLeaveDaysValue = (float)strUtil.round(realPaidLeaveDaysValue - freezeDays[2]);
|
||
}
|
||
}
|
||
}
|
||
//因为json在存储float的时候会存在精度丢失的问题,改为存储字符串
|
||
strRealAllannualValue = ""+realAllannualValue;
|
||
strRealAllpsldaysValue = ""+realAllpsldaysValue;
|
||
strRealPaidLeaveDaysValue = ""+realPaidLeaveDaysValue;
|
||
Map daymap = new HashMap();
|
||
daymap.put("resourceId", resourceId);
|
||
daymap.put("info", result);
|
||
daymap.put("allannualValue", allannualValue);
|
||
daymap.put("realAllannualValue", strRealAllannualValue);
|
||
daymap.put("allpsldaysValue", allpsldaysValue);
|
||
daymap.put("realAllpsldaysValue", strRealAllpsldaysValue);
|
||
daymap.put("paidLeaveDaysValue", paidLeaveDaysValue);
|
||
daymap.put("realPaidLeaveDaysValue", strRealPaidLeaveDaysValue);
|
||
|
||
JSONObject jo = JSONObject.fromObject(daymap);
|
||
result = jo.toString();
|
||
out.print(result);
|
||
}
|
||
}catch(Exception e) {
|
||
logBean.writeLog("", e);
|
||
}
|
||
%>
|