|
|
|
@ -241,7 +241,6 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
|
|
|
|
|
|
|
|
|
|
/*考勤二开--公休时长统计start*/
|
|
|
|
|
String offdutyId = Util.null2String(PropBean.getUfPropValue("shift.offduty.id"),"7");
|
|
|
|
|
bb.writeLog("offdutyId: " + offdutyId);
|
|
|
|
|
/*考勤二开--公休时长统计end*/
|
|
|
|
|
|
|
|
|
|
/*考勤二开--劳务工时start*/
|
|
|
|
@ -256,9 +255,36 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
|
|
|
|
|
empTypes.put(id, empTypeValue);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
bb.writeLog("empTypes: " + empTypes);
|
|
|
|
|
/*考勤二开--劳务工时end*/
|
|
|
|
|
|
|
|
|
|
/*考勤二开--劳务公司start*/
|
|
|
|
|
//获取人员的劳务公司
|
|
|
|
|
Map<String, Object> resLabComMap = new HashMap<>();
|
|
|
|
|
String laborCompanies = Util.null2String(PropBean.getUfPropValue("laborCompanies"),"field25");
|
|
|
|
|
String acqResLaborComSql = "select id, " + laborCompanies + " from cus_fielddata where scopeid = 3 and scope = 'HrmCustomFieldByInfoType'";
|
|
|
|
|
rs.executeQuery(acqResLaborComSql);
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
String id = Util.null2String(rs.getString("id"));
|
|
|
|
|
String value = Util.null2String(rs.getString(laborCompanies));
|
|
|
|
|
if (StringUtils.isNotBlank(id) && StringUtils.isNotBlank(value)) {
|
|
|
|
|
resLabComMap.put(id, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
bb.writeLog("resLabComMap: " + resLabComMap);
|
|
|
|
|
//获取所有劳务公司
|
|
|
|
|
Map<String, Object> laborCompaniesMap = new HashMap<>();
|
|
|
|
|
String acqLabComSql = "select id, gsmc from uf_lwgs ";
|
|
|
|
|
rs.executeQuery(acqLabComSql);
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
String id = Util.null2String(rs.getString("id"));
|
|
|
|
|
String value = Util.null2String(rs.getString("gsmc"));
|
|
|
|
|
if (StringUtils.isNotBlank(id) && StringUtils.isNotBlank(value)) {
|
|
|
|
|
laborCompaniesMap.put(id, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
bb.writeLog("laborCompaniesMap: " + laborCompaniesMap);
|
|
|
|
|
/*考勤二开--劳务公司end*/
|
|
|
|
|
|
|
|
|
|
// #1475814-概述:满足考勤报分部部门显示及导出时显示全路径
|
|
|
|
|
String fullPathMainKey = "show_full_path";
|
|
|
|
|
KQSettingsComInfo kqSettingsComInfo = new KQSettingsComInfo();
|
|
|
|
@ -330,14 +356,17 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
|
|
|
|
|
}
|
|
|
|
|
data.put(fieldName, fieldValue);
|
|
|
|
|
}else if(fieldName.equals("overtimeType")){
|
|
|
|
|
|
|
|
|
|
//根据id查询加班类型
|
|
|
|
|
String overtimeType = getOvertimeTypeById(id);
|
|
|
|
|
|
|
|
|
|
if("0".equals(overtimeType)){
|
|
|
|
|
overtimeType = "有加班费";
|
|
|
|
|
}else{
|
|
|
|
|
overtimeType = "无加班费";
|
|
|
|
|
}
|
|
|
|
|
fieldValue = overtimeType;
|
|
|
|
|
|
|
|
|
|
data.put(fieldName,fieldValue);
|
|
|
|
|
}else if(fieldName.equals("companystartdate")){
|
|
|
|
|
//根据id查询入职日期
|
|
|
|
@ -349,8 +378,7 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
|
|
|
|
|
Map<String, String> map = getEmployAndResignDateById(id);
|
|
|
|
|
fieldValue = map.get("resignDate");
|
|
|
|
|
data.put(fieldName,fieldValue);
|
|
|
|
|
}
|
|
|
|
|
else if (fieldName.equals("jobtitle")) {
|
|
|
|
|
} else if (fieldName.equals("jobtitle")) {
|
|
|
|
|
String fieldValueID = rs.getString("jobtitle");
|
|
|
|
|
fieldValue = jobTitlesComInfo.getJobTitlesname(rs.getString("jobtitle"));
|
|
|
|
|
if (fieldValue.length() == 0) {
|
|
|
|
@ -399,12 +427,12 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else if ("appForOvertime".equals(fieldName)) {
|
|
|
|
|
bb.writeLog("appForOvertime");
|
|
|
|
|
|
|
|
|
|
LocalDate date = LocalDate.parse(kqdate, formatter);
|
|
|
|
|
LocalDate kqdateL = date.plusDays(1);
|
|
|
|
|
String kqdateN = kqdateL.format(formatter);
|
|
|
|
|
int intValue = Util.getIntValue(Util.null2String(flowData.get(id + "|" + kqdateN + "|" + "appForOvertime")));
|
|
|
|
|
bb.writeLog("intValue: " + intValue);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (intValue == 1) {
|
|
|
|
|
data.put(fieldName, "正常");
|
|
|
|
@ -412,25 +440,45 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
|
|
|
|
|
data.put(fieldName, "异常");
|
|
|
|
|
}
|
|
|
|
|
} else if ("holiDuration".equals(fieldName)) {//考勤二开--公休时长统计
|
|
|
|
|
bb.writeLog("holiDuration");
|
|
|
|
|
|
|
|
|
|
String serialid = Util.null2String(rs.getString("serialid"));
|
|
|
|
|
bb.writeLog("serialid: " + serialid);
|
|
|
|
|
|
|
|
|
|
if (offdutyId.equals(serialid)) {
|
|
|
|
|
fieldValue = "8";
|
|
|
|
|
} else {
|
|
|
|
|
fieldValue = "0";
|
|
|
|
|
}
|
|
|
|
|
bb.writeLog("fieldValue: " + fieldValue);
|
|
|
|
|
|
|
|
|
|
data.put(fieldName, fieldValue);
|
|
|
|
|
} else if ("resourceType".equals(fieldName)) {//考勤二开--员工类型显示
|
|
|
|
|
|
|
|
|
|
int emp = Util.getIntValue(Util.null2String(empTypes.get(id)));
|
|
|
|
|
|
|
|
|
|
if(emp == 0) {
|
|
|
|
|
fieldValue = "正式工";
|
|
|
|
|
}else if(emp == 1) {
|
|
|
|
|
fieldValue = "劳务工";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
data.put(fieldName, fieldValue);
|
|
|
|
|
} else if ("laborCompanies".equals(fieldName)) {//考勤二开--员工劳务公司
|
|
|
|
|
|
|
|
|
|
String labCom = Util.null2String(resLabComMap.get(id));
|
|
|
|
|
bb.writeLog("劳务公司 labCom: " + labCom);
|
|
|
|
|
if (StringUtils.isNotBlank(labCom)) {
|
|
|
|
|
fieldValue = Util.null2String(laborCompaniesMap.get(labCom));
|
|
|
|
|
}
|
|
|
|
|
bb.writeLog("劳务公司 fieldValue: " + fieldValue);
|
|
|
|
|
data.put(fieldName, fieldValue);
|
|
|
|
|
} else if ("laborHours".equals(kqReportFieldComInfo.getParentid()) ) {
|
|
|
|
|
bb.writeLog("laborHours start ");
|
|
|
|
|
|
|
|
|
|
int emp = Util.getIntValue(Util.null2String(empTypes.get(id)));
|
|
|
|
|
bb.writeLog("emp: " + emp);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (emp == 1) {
|
|
|
|
|
double attendanceMins = Util.getDoubleValue(Util.null2String(rs.getString("attendanceMins")), 0.00);
|
|
|
|
|
double attendanceHours = Util.getDoubleValue(KQDurationCalculatorUtil.getDurationRound(String.valueOf(attendanceMins / 60.0)), 0.00);
|
|
|
|
|
bb.writeLog("attendanceHours: " + attendanceHours);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
double workingDayOvertime_4leave = Util.getDoubleValue(Util.null2String(flowData.get(id + "|" + kqdate + "|workingDayOvertime_4leave")));
|
|
|
|
|
workingDayOvertime_4leave = workingDayOvertime_4leave < 0 ? 0 : workingDayOvertime_4leave;
|
|
|
|
@ -449,7 +497,6 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
|
|
|
|
|
fieldValue = KQDurationCalculatorUtil.getDurationRound(String.valueOf(attendanceHours + workingDayOvertime_4leave + restDayOvertime_4leave + holidayOvertime_4leave +
|
|
|
|
|
workingDayOvertime_nonleave + restDayOvertime_nonleave + holidayOvertime_nonleave));
|
|
|
|
|
|
|
|
|
|
bb.writeLog("fieldValue: " + fieldValue);
|
|
|
|
|
|
|
|
|
|
int changeType = KQOvertimeRulesBiz.getChangeType(id, kqdate);
|
|
|
|
|
|
|
|
|
@ -514,28 +561,29 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
|
|
|
|
|
}
|
|
|
|
|
/*考勤二开--转事假start*/
|
|
|
|
|
if ( flowType.equals( ("leaveType_" + calLeaveId) ) ) {
|
|
|
|
|
bb.writeLog("flowLeaveData: " + flowLeaveData);
|
|
|
|
|
|
|
|
|
|
double temp = Util.getDoubleValue(Util.null2String(flowData.get("DailyToComLeaveData|" + id + "|" + kqdate)));
|
|
|
|
|
bb.writeLog("temp: " + temp);
|
|
|
|
|
|
|
|
|
|
if (temp >= 0.00) {
|
|
|
|
|
temp = Double.parseDouble(KQDurationCalculatorUtil.getDurationRound(String.valueOf(temp / 60.0)));
|
|
|
|
|
double doubleValue = Util.getDoubleValue(Util.null2String(flowLeaveData));
|
|
|
|
|
flowLeaveData = String.valueOf(doubleValue > 0.00? doubleValue : 0.00 + temp);
|
|
|
|
|
}
|
|
|
|
|
bb.writeLog("flowLeaveData: " + flowLeaveData);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
/*考勤二开--转事假end*/
|
|
|
|
|
/*考勤二开--异常考勤转事假start*/
|
|
|
|
|
if ( flowType.equals( ("leaveType_" + calLeaveId) ) ) {
|
|
|
|
|
bb.writeLog("-flowLeaveData: " + flowLeaveData);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
double temp = Util.getDoubleValue(Util.null2String(flowData.get("DailyAbnAttToComLeaveData|" + id + "|" + kqdate)));
|
|
|
|
|
bb.writeLog("-temp: " + temp);
|
|
|
|
|
|
|
|
|
|
if (temp >= 0.00) {
|
|
|
|
|
temp = Double.parseDouble(KQDurationCalculatorUtil.getDurationRound(String.valueOf(temp / 60.0)));
|
|
|
|
|
double doubleValue = Util.getDoubleValue(Util.null2String(flowLeaveData));
|
|
|
|
|
flowLeaveData = String.valueOf(doubleValue > 0.00? doubleValue : 0.00 + temp);
|
|
|
|
|
}
|
|
|
|
|
bb.writeLog("-flowLeaveData: " + flowLeaveData);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
/*考勤二开--异常考勤转事假end*/
|
|
|
|
|
data.put(flowType, flowLeaveData);
|
|
|
|
@ -589,6 +637,7 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
|
|
|
|
|
}
|
|
|
|
|
return str;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*获取人员加班类型*/
|
|
|
|
|
private String getOvertimeTypeById(String id){
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
@ -601,6 +650,7 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
|
|
|
|
|
}
|
|
|
|
|
return field35;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*获取人员入离职时间*/
|
|
|
|
|
private Map<String,String> getEmployAndResignDateById(String id){
|
|
|
|
|
RecordSet rs = new RecordSet();
|
|
|
|
@ -735,7 +785,7 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
|
|
|
|
|
String sql = "";
|
|
|
|
|
KQTimesArrayComInfo kqTimesArrayComInfo = new KQTimesArrayComInfo();
|
|
|
|
|
try{
|
|
|
|
|
bb.writeLog("-----getSignDetailInfo start-----");
|
|
|
|
|
|
|
|
|
|
sql = " select kqdate,resourceid,serialid,serialnumber,workbegindate,workbegintime, " +
|
|
|
|
|
" workenddate,workendtime,workmins,signindate,signintime,signoutdate,signouttime, \n" +
|
|
|
|
|
" attendanceMins,belatemins,graveBeLateMins,leaveearlymins,graveLeaveEarlyMins,absenteeismmins,forgotcheckMins,forgotBeginWorkCheckMins," +
|
|
|
|
@ -744,7 +794,7 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
|
|
|
|
|
" where resourceid = " + resourceId + " and kqdate ='" + kqDate + "' \n" +
|
|
|
|
|
" order by serialnumber \n";
|
|
|
|
|
rs.execute(sql);
|
|
|
|
|
bb.writeLog("sql: " + sql);
|
|
|
|
|
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
String resourceid = Util.null2String(rs.getString("resourceid"));
|
|
|
|
|
String kqdate = Util.null2String(rs.getString("kqdate"));
|
|
|
|
@ -789,15 +839,12 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
|
|
|
|
|
/*考勤二开--当前时间在当天班次下班点之前,不显示旷工start*/
|
|
|
|
|
String nowDay = DateUtil.format(new Date(), "yyyy-MM-dd");
|
|
|
|
|
String nowTime = DateUtil.format(new Date(), "HH:mm");
|
|
|
|
|
bb.writeLog("nowDay: " + nowDay);
|
|
|
|
|
bb.writeLog("nowTime: " + nowTime);
|
|
|
|
|
bb.writeLog("workenddate: " + workenddate);
|
|
|
|
|
bb.writeLog("workendtime: " + kqTimesArrayComInfo.turn48to24Time(workendtime));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (workenddate.equals(nowDay) && nowTime.compareTo(kqTimesArrayComInfo.turn48to24Time(workendtime)) < 0) {
|
|
|
|
|
signStatusInfo.put("isneedcal","1");
|
|
|
|
|
}
|
|
|
|
|
bb.writeLog("signStatusInfo: " + signStatusInfo);
|
|
|
|
|
|
|
|
|
|
/*考勤二开--当前时间在当天班次下班点之前,不显示旷工end*/
|
|
|
|
|
|
|
|
|
|
data.put("signintime"+serialnumber, signintime.length()==0?SystemEnv.getHtmlLabelName(25994, user.getLanguage()):signintime);
|
|
|
|
@ -820,15 +867,11 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
|
|
|
|
|
/*考勤二开--当前时间在当天班次下班点之前,不显示旷工start*/
|
|
|
|
|
String nowDay = DateUtil.format(new Date(), "yyyy-MM-dd");
|
|
|
|
|
String nowTime = DateUtil.format(new Date(), "HH:mm");
|
|
|
|
|
bb.writeLog("nowDay: " + nowDay);
|
|
|
|
|
bb.writeLog("nowTime: " + nowTime);
|
|
|
|
|
bb.writeLog("workenddate: " + workenddate);
|
|
|
|
|
bb.writeLog("workendtime: " + kqTimesArrayComInfo.turn48to24Time(workendtime));
|
|
|
|
|
|
|
|
|
|
if (workenddate.equals(nowDay) && nowTime.compareTo(kqTimesArrayComInfo.turn48to24Time(workendtime)) < 0) {
|
|
|
|
|
signStatusInfo.put("isneedcal","1");
|
|
|
|
|
}
|
|
|
|
|
bb.writeLog("signStatusInfo: " + signStatusInfo);
|
|
|
|
|
|
|
|
|
|
/*考勤二开--当前时间在当天班次下班点之前,不显示旷工end*/
|
|
|
|
|
|
|
|
|
|
data.put("signouttime"+serialnumber, signouttime.length()==0?SystemEnv.getHtmlLabelName(25994, user.getLanguage()):signouttime);
|
|
|
|
|