weaver-hrm-salary/resource/wiki/获取指定人员工作日天数.txt

65 lines
2.3 KiB
Plaintext

/**
* 返回指定日志范围内的工作日天数
* @param beginDate 开始日期
* @param endDate 结束日期
* @param userid 人员ID
* @return
*/
public String getWorkDays(String beginDate, String endDate, int userid) {
BaseBean bean = new BaseBean();
//设置日期格式
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
//起始日期
if (beginDate == null || beginDate.length() == 0) {
beginDate = bean.getPropValue("scheduleWorkDayForFormula", "fromDate");
beginDate = beginDate == null ? "" : beginDate.trim();
if (beginDate.length() == 0) {
beginDate = df.format(new Date());
}
}
//截止日期
if (endDate == null || endDate.length() == 0) {
endDate = bean.getPropValue("scheduleWorkDayForFormula", "endDate");
endDate = endDate == null ? "" : endDate.trim();
if (endDate.length() == 0) {
endDate = df.format(new Date());
}
}
boolean isBig = false;
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date begin = sdf.parse(beginDate);
Date end = sdf.parse(endDate);
if (begin.compareTo(end) > 0) {
String temp = beginDate;
beginDate = endDate;
endDate = temp;
isBig = true;
}
} catch (Exception e) {
bean.writeLog("ExcelFormulaWorkday解析日期报错", e);
}
int workDayCount = 0;
User user = new User(userid);
HrmScheduleManager manager = new HrmScheduleManager(user);
Map<String, Boolean> mapWorkday = manager.isWorkday(beginDate, endDate, manager.getSubCompanyId());
if (mapWorkday != null && mapWorkday.size() > 0) {
Iterator<String> itr = mapWorkday.keySet().iterator();
while (itr.hasNext()) {
String tempDate = itr.next();
Boolean isWorkDay = mapWorkday.get(tempDate);
if (isWorkDay) {
if (isBig) {
workDayCount--;
} else {
workDayCount++;
}
}
}
}
return workDayCount+"";
}