考勤上线后问题处理

dev-chenwnj
chenwei 1 year ago
parent 2066506e17
commit 15ab092f8b

@ -954,24 +954,35 @@ public class KQFormatData extends BaseBean {
groupMap.put(grouptype, kqgroup);
}
}
bb.writeLog("groupMap: " + groupMap);
bb.writeLog("groupid: " + groupid);
for (int j = 0; lsCheckInfo != null && j < lsCheckInfo.size(); j++) {
Map<String, Object> checkInfo = (Map<String, Object>) lsCheckInfo.get(j);
if ("2".equals(checkInfo.get("signType"))) {//签退
String signDate = Util.null2String(checkInfo.get("signDate"));
String signTime = Util.null2String(checkInfo.get("signTime"));
bb.writeLog("signDate: " + signDate);
bb.writeLog("signTime: " + signTime);
if (groupMap != null && groupMap.size() > 0) {
for (String grouptype : groupMap.keySet()) {
bb.writeLog("grouptype: " + grouptype);
if ("0".equals(grouptype)) {//责任制--23点
String kqgroups = Util.null2String(groupMap.get(grouptype));
List<String> groupList = Collections.singletonList(kqgroups);
bb.writeLog("kqgroups: " + kqgroups);
List<String> groupList = Arrays.asList(kqgroups.split(","));
bb.writeLog("groupList: " + groupList);
if(groupList.contains(groupid)) {
//23:00
if (signTime.length() == 5) {
signTime = signTime + ":00";
}
String subsidyTime = kqDate + " 23:00:00";
bb.writeLog("subsidyTime: " + subsidyTime);
String outTime = signDate + " " + signTime;
bb.writeLog("outTime: " + outTime);
if (outTime.compareTo(subsidyTime) > 0 ) {
zeroPointSub = 1;
}
@ -979,14 +990,18 @@ public class KQFormatData extends BaseBean {
}
if ("1".equals(grouptype)) {//排班制--00点
String kqgroups = Util.null2String(groupMap.get(grouptype));
List<String> groupList = Collections.singletonList(kqgroups);
bb.writeLog("kqgroups: " + kqgroups);
List<String> groupList = Arrays.asList(kqgroups.split(","));
bb.writeLog("groupList: " + groupList);
if(groupList.contains(groupid)) {
//00:00
if (signTime.length() == 5) {
signTime = signTime + ":00";
}
String subsidyTime = kqDate + " 00:00:00";
bb.writeLog("subsidyTime: " + subsidyTime);
String outTime = signDate + " " + signTime;
bb.writeLog("outTime: " + outTime);
if (outTime.compareTo(subsidyTime) > 0 ) {
zeroPointSub = 1;
}
@ -996,6 +1011,7 @@ public class KQFormatData extends BaseBean {
}
}
}
bb.writeLog("zeroPointSub: " + zeroPointSub);
/*考勤二开--零点补助end*/
params.add(userId);

@ -1415,15 +1415,15 @@ public class KQReportBiz extends BaseBean {
}
HostarUtil hostarUtil = new HostarUtil();
//获取经纬度半径
Double radius = 0.00;
String acqRadiusSql = "select radius from uf_leWorkRadius where (isDelete is null or isDelete = 0 )";
bb.writeLog("acqRadiusSql: " + acqRadiusSql);
rs.executeQuery(acqRadiusSql);
while (rs.next()) {
radius = Util.getDoubleValue(Util.null2String(rs.getString("radius")));
}
bb.writeLog("radius: " + radius);
//获取经纬度半径---暂时取消外勤打卡范围校验
// Double radius = 0.00;
// String acqRadiusSql = "select radius from uf_leWorkRadius where (isDelete is null or isDelete = 0 )";
// bb.writeLog("acqRadiusSql: " + acqRadiusSql);
// rs.executeQuery(acqRadiusSql);
// while (rs.next()) {
// radius = Util.getDoubleValue(Util.null2String(rs.getString("radius")));
// }
// bb.writeLog("radius: " + radius);
String MealAlloTableName = Util.null2String(bb.getPropValue("project_hostar", "MealAllowanceTableName"));
bb.writeLog("MealAlloTableName: " + MealAlloTableName);
@ -1456,23 +1456,23 @@ public class KQReportBiz extends BaseBean {
Map<String, Object> temp = lsCheckInfo.get(key);
String signInTime = Util.null2String(temp.get("signInTime"));
String signOutTime = Util.null2String(temp.get("signOutTime"));
Double signInLatitude = Util.getDoubleValue(Util.null2String(temp.get("signInLatitude")));
Double signInLongitude = Util.getDoubleValue(Util.null2String(temp.get("signInLongitude")));
Double signOutLatitude = Util.getDoubleValue(Util.null2String(temp.get("signOutLatitude")));
Double signOutLongitude = Util.getDoubleValue(Util.null2String(temp.get("signOutLongitude")));
// Double signInLatitude = Util.getDoubleValue(Util.null2String(temp.get("signInLatitude")));
// Double signInLongitude = Util.getDoubleValue(Util.null2String(temp.get("signInLongitude")));
// Double signOutLatitude = Util.getDoubleValue(Util.null2String(temp.get("signOutLatitude")));
// Double signOutLongitude = Util.getDoubleValue(Util.null2String(temp.get("signOutLongitude")));
if (StringUtils.isNotBlank(signInTime) && StringUtils.isNotBlank(signOutTime) ) {
String lonAndLat = Util.null2String(evectionMap.get(kqDate + "|" + userId));
// bb.writeLog("lonAndLat: " + lonAndLat);
String[] split1 = lonAndLat.split("\\|");
Double longitude = Util.getDoubleValue(Util.null2String(split1[0]));
Double latitude = Util.getDoubleValue(Util.null2String(split1[1]));
//判断经纬度是否符合标准
Double distanceIn = hostarUtil.calculateDistance(latitude, longitude, signInLatitude, signInLongitude);//上班
// bb.writeLog("distanceIn: " + distanceIn);
Double distanceOut = hostarUtil.calculateDistance(latitude, longitude, signOutLatitude, signOutLongitude);//下班
// bb.writeLog("distanceOut: " + distanceOut);
if ( distanceIn<=radius && distanceOut<=radius) {
// String lonAndLat = Util.null2String(evectionMap.get(kqDate + "|" + userId));
//// bb.writeLog("lonAndLat: " + lonAndLat);
// String[] split1 = lonAndLat.split("\\|");
// Double longitude = Util.getDoubleValue(Util.null2String(split1[0]));
// Double latitude = Util.getDoubleValue(Util.null2String(split1[1]));
// //判断经纬度是否符合标准
// Double distanceIn = hostarUtil.calculateDistance(latitude, longitude, signInLatitude, signInLongitude);//上班
//// bb.writeLog("distanceIn: " + distanceIn);
// Double distanceOut = hostarUtil.calculateDistance(latitude, longitude, signOutLatitude, signOutLongitude);//下班
//// bb.writeLog("distanceOut: " + distanceOut);
// if ( distanceIn<=radius && distanceOut<=radius) {
for (Map<String, String> me: MealMap) {
String startTime = me.get("startTime");
// bb.writeLog("startTime: " + startTime);
@ -1496,7 +1496,7 @@ public class KQReportBiz extends BaseBean {
}
}
}
}
// }
}
}
@ -2109,7 +2109,7 @@ public class KQReportBiz extends BaseBean {
// long endTime11 = System.currentTimeMillis();
// long elapsedTime11 = endTime11 - startTime11; // 执行时间
// bb.writeLog("加班时长执行时间:" + elapsedTime11 + "毫秒" );
// bb.writeLog("dailyFlowOverTimeData: " + dailyFlowOverTimeData);
bb.writeLog("dailyFlowOverTimeData: " + dailyFlowOverTimeData);
//首先去除指定不享有的分部
// long startTime12 = System.currentTimeMillis();
@ -2125,7 +2125,7 @@ public class KQReportBiz extends BaseBean {
// long endTime12 = System.currentTimeMillis();
// long elapsedTime12 = endTime12 - startTime12; // 执行时间
// bb.writeLog("不享有的分部执行时间:" + elapsedTime12 + "毫秒" );
// bb.writeLog("subComoanyList: " + subComoanyList);
bb.writeLog("subComoanyList: " + subComoanyList);
String subComoanys = "";
if ( subComoanyList != null && subComoanyList.size() > 0) {

@ -284,6 +284,8 @@ public class PunchOutButtonCmd extends AbstractCommonCommand<Map<String, Object>
/*考勤二开--外出出差流程外勤打卡start*/
else {
bb.writeLog("外勤打卡转考勤卡start");
bb.writeLog("params: " + params);
bb.writeLog("signdate: " + signDate);
//先判断是否有外出出差流程
String evectionTableName = Util.null2String(bb.getPropValue("project_hostar","evectionTableName"));
String outTableName = Util.null2String(bb.getPropValue("project_hostar","outTableName"));
@ -347,7 +349,7 @@ public class PunchOutButtonCmd extends AbstractCommonCommand<Map<String, Object>
String punchSql = "insert into HrmScheduleSign(userId,userType,signType,signDate,signTime,clientAddress,isInCom,timeZone,belongdate,signfrom,longitude,latitude,addr,deviceInfo,isdev) "+
" values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
boolean isok = rs.executeUpdate(punchSql,userId,userType,signType,signDate,signTime,clientAddress,isInCom,
timeZone,belongdate,signfrom,longitude,latitude,address,deviceInfo);
timeZone,belongdate,signfrom,longitude,latitude,address,deviceInfo,"1");
bb.writeLog("isok: " + isok);
//同步更新考勤数据到考勤报表
if(belongdateIsNull){

@ -189,7 +189,7 @@ public class ExportDailyExcelCmd extends AbstractCommonCommand<Map<String, Objec
" b.kqdate, b.workdays,b.workMins,b.serialid, b.attendancedays,FLOOR( b.attendanceMins / 30 ) * 30 AS attendanceMins ,b.beLate," +
" b.beLateMins,b.graveBeLate,b.graveBeLateMins,b.leaveEearly,b.leaveEarlyMins,b.graveLeaveEarly," +
" b.graveLeaveEarlyMins,b.absenteeism,b.signdays,b.signmins, "+
" b.absenteeismMins ,(b.forgotCheck+"+forgotBeginWorkCheck_field+") forgotCheck ";
" b.absenteeismMins ,(b.forgotCheck+"+forgotBeginWorkCheck_field+") forgotCheck,zeropoint ";
String sqlFrom = " from hrmresource a, kq_format_total b where a.id= b.resourceid and b.kqdate >='"+fromDate+"' and b.kqdate <='"+toDate+"'";
String sqlWhere = rightSql;
if(subCompanyId.length()>0){
@ -472,7 +472,7 @@ public class ExportDailyExcelCmd extends AbstractCommonCommand<Map<String, Objec
} else {
Map<String, Object> tempMap = hostarUtil.parseMapForFilter(dailyStatAllowanceData, id + "|DailyStatAllowance");
int temp = Util.getIntValue(Util.null2String(tempMap.get(id + "|DailyStatAllowance" + "|" + kqdate )));
double temp = Util.getDoubleValue(Util.null2String(tempMap.get(id + "|DailyStatAllowance" + "|" + kqdate )));
if (temp <= 0) {
fieldValue = "0";
} else {

@ -213,7 +213,7 @@ public class ExportExcelCmd extends AbstractCommonCommand<Map<String, Object>> {
" sum(b.leaveEarlyMins) as leaveEarlyMins, sum(b.graveLeaveEarly) as graveLeaveEarly, " +
" sum(b.graveLeaveEarlyMins) as graveLeaveEarlyMins,sum(b.absenteeism) as absenteeism, " +
" sum(b.signdays) as signdays,sum(b.signmins) as signmins, "+
" sum(b.absenteeismMins ) as absenteeismMins, sum(b.forgotCheck)+"+forgotBeginWorkCheck_field+" as forgotCheck "+(definedFieldSum.length()>0?","+definedFieldSum+"":"");
" sum(b.absenteeismMins ) as absenteeismMins, sum(b.forgotCheck)+"+forgotBeginWorkCheck_field+" as forgotCheck,sum(b.zeropoint) as zeropoint "+(definedFieldSum.length()>0?","+definedFieldSum+"":"");
if(rs.getDBType().equals("oracle")){
backFields = "/*+ index(kq_format_total IDX_KQ_FORMAT_TOTAL_KQDATE) */ "+backFields;
}

@ -148,7 +148,7 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
" b.kqdate, b.workdays,b.workMins,b.serialid, b.attendancedays,FLOOR( b.attendanceMins / 30 ) * 30 AS attendanceMins," +
" b.beLate,b.beLateMins,b.graveBeLate,b.graveBeLateMins,b.leaveEearly,b.leaveEarlyMins," +
" b.signdays,b.signmins, "+
" b.graveLeaveEarly,b.graveLeaveEarlyMins,b.absenteeism , b.absenteeismMins ,(b.forgotCheck+"+forgotBeginWorkCheck_field+") forgotCheck ";
" b.graveLeaveEarly,b.graveLeaveEarlyMins,b.absenteeism , b.absenteeismMins ,(b.forgotCheck+"+forgotBeginWorkCheck_field+") forgotCheck,zeropoint ";
String sqlFrom = " from hrmresource a, kq_format_total b where a.id= b.resourceid and b.kqdate >='"+fromDate+"' and b.kqdate <='"+toDate+"'";
String sqlWhere = rightSql;
if(subCompanyId.length()>0){
@ -377,8 +377,10 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
fieldValue = "0";
} else {
Map<String, Object> tempMap = hostarUtil.parseMapForFilter(dailyStatAllowanceData, id + "|DailyStatAllowance");
int temp = Util.getIntValue(Util.null2String(tempMap.get(id + "|DailyStatAllowance" + "|" + kqdate )));
// bb.writeLog("-=-=tempMap: " + tempMap);
// bb.writeLog("-=-=tempMap.key: " + id + "|DailyStatAllowance" + "|" + kqdate);
double temp = Util.getDoubleValue(Util.null2String(tempMap.get(id + "|DailyStatAllowance" + "|" + kqdate )));
// bb.writeLog("-=-=temp: " + temp);
if (temp <= 0) {
fieldValue = "0";
} else {
@ -386,7 +388,7 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
}
}
// bb.writeLog("fieldValue: " + fieldValue);
bb.writeLog("-=-=fieldValue: " + fieldValue);
}
data.put(fieldName, fieldValue);
} else if (fieldName.equals("nightAllowance")) {//考勤二开--精密夜班餐补
@ -616,23 +618,24 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
String sql = "";
KQTimesArrayComInfo kqTimesArrayComInfo = new KQTimesArrayComInfo();
try{
// sql = " select kqdate,resourceid,serialid,serialnumber,workbegindate,workbegintime, " +
// " workenddate,workendtime,workmins,signindate,signintime,signoutdate,signouttime, \n" +
// " attendanceMins,belatemins,graveBeLateMins,leaveearlymins,graveLeaveEarlyMins,absenteeismmins,forgotcheckMins,forgotBeginWorkCheckMins," +
// " leaveMins,leaveInfo,evectionMins,outMins,signinid,signoutid \n" +
// " from kq_format_detail b \n" +
// " where resourceid = " + resourceId + " and kqdate ='" + kqDate + "' \n" +
// " order by serialnumber \n";
/*考勤二开--增加打卡地址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," +
" leaveMins,leaveInfo,evectionMins,outMins,signinid,signoutid \n" +
" from kq_format_detail b " +
" left join hrmschedulesign a " +
" from kq_format_detail b \n" +
" where resourceid = " + resourceId + " and kqdate ='" + kqDate + "' \n" +
" order by serialnumber \n";
/*考勤二开--增加打卡地址start*/
sql = " select a.kqdate,a.resourceid,a.serialid,a.serialnumber,a.workbegindate,a.workbegintime, " +
" a.workenddate,a.workendtime,a.workmins,a.signindate,a.signintime,a.signoutdate,a.signouttime, \n" +
" a.attendanceMins,a.belatemins,a.graveBeLateMins,a.leaveearlymins,a.graveLeaveEarlyMins,a.absenteeismmins,a.forgotcheckMins,a.forgotBeginWorkCheckMins," +
" a.leaveMins,a.leaveInfo,a.evectionMins,a.outMins,a.signinid,a.signoutid, b.showaddress as signinaddr, c.showaddress as signoutaddr \n" +
" from kq_format_detail a " +
" left join hrmschedulesign b on b.id = a.signinid \n" +
" left join hrmschedulesign c on c.id = a.signoutid \n" +
" where a.resourceid = " + resourceId + " and a.kqdate ='" + kqDate + "' \n" +
" order by a.serialnumber \n";
/*考勤二开--增加打卡地址end*/
rs.execute(sql);
while (rs.next()) {
@ -661,6 +664,8 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
String leaveInfo = Util.null2String(rs.getString("leaveInfo"));
int evectionMins = rs.getInt("evectionMins");
int outMins = rs.getInt("outMins");
String signInAddr = Util.null2String(rs.getString("signinaddr"));
String signOutAddr = Util.null2String(rs.getString("signoutaddr"));
if(serialid.length()>0){
@ -677,7 +682,7 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
signStatusInfo.put("evectionMins",evectionMins);
signStatusInfo.put("outMins",outMins);
data.put("signintime"+serialnumber, signintime.length()==0?SystemEnv.getHtmlLabelName(25994, user.getLanguage()):signintime);
data.put("signintime"+serialnumber, signintime.length()==0?SystemEnv.getHtmlLabelName(25994, user.getLanguage()):signintime + signInAddr);
data.put("signinstatus"+serialnumber, KQReportBiz.getSignStatus(signStatusInfo,user,"on"));
}
@ -695,7 +700,7 @@ public class GetKQDailyReportCmd extends AbstractCommonCommand<Map<String, Objec
signStatusInfo.put("evectionMins",evectionMins);
signStatusInfo.put("outMins",outMins);
data.put("signouttime"+serialnumber, signouttime.length()==0?SystemEnv.getHtmlLabelName(25994, user.getLanguage()):signouttime);
data.put("signouttime"+serialnumber, signouttime.length()==0?SystemEnv.getHtmlLabelName(25994, user.getLanguage()):signouttime + signOutAddr);
data.put("signoutstatus"+serialnumber, KQReportBiz.getSignStatus(signStatusInfo,user,"off"));
}
}else{

@ -179,7 +179,7 @@ public class GetKQReportCmd extends AbstractCommonCommand<Map<String, Object>> {
" sum(b.leaveEarlyMins) as leaveEarlyMins, sum(b.graveLeaveEarly) as graveLeaveEarly, " +
" sum(b.graveLeaveEarlyMins) as graveLeaveEarlyMins,sum(b.absenteeism) as absenteeism, " +
" sum(b.signdays) as signdays,sum(b.signmins) as signmins, "+
" sum(b.absenteeismMins ) as absenteeismMins, sum(b.forgotCheck)+"+forgotBeginWorkCheck_field+" as forgotCheck "+(definedFieldSum.length()>0?","+definedFieldSum+"":"");
" sum(b.absenteeismMins ) as absenteeismMins, sum(b.forgotCheck)+"+forgotBeginWorkCheck_field+" as forgotCheck, sum(b.zeropoint) as zeropoint "+(definedFieldSum.length()>0?","+definedFieldSum+"":"");
if(rs.getDBType().equals("oracle")){
backFields = "/*+ index(kq_format_total IDX_KQ_FORMAT_TOTAL_KQDATE) */ "+backFields;

Loading…
Cancel
Save