|
|
|
@ -31,6 +31,7 @@ import weaver.common.DateUtil;
|
|
|
|
|
import weaver.conn.RecordSet;
|
|
|
|
|
import weaver.dateformat.DateTransformer;
|
|
|
|
|
import weaver.dateformat.TimeZoneVar;
|
|
|
|
|
import weaver.general.BaseBean;
|
|
|
|
|
import weaver.general.Util;
|
|
|
|
|
import weaver.hrm.User;
|
|
|
|
|
import weaver.systeminfo.SystemEnv;
|
|
|
|
@ -365,47 +366,65 @@ public class PunchButtonCmd extends AbstractCommonCommand<Map<String, Object>> {
|
|
|
|
|
LIST.add(Util.null2String(rs.getString("kqzid")));
|
|
|
|
|
}
|
|
|
|
|
kqLog.info("PunchButtonCmd.LIST"+LIST);
|
|
|
|
|
if(LIST.contains(groupid)&&StringUtils.isBlank(workTimeEntity.getSerialId())) {
|
|
|
|
|
if(LIST.contains(groupid)) {
|
|
|
|
|
RecordSet rt = new RecordSet();
|
|
|
|
|
BaseBean bb = new BaseBean();
|
|
|
|
|
//休息日或节假日给休息班次
|
|
|
|
|
//int changeType = KQOvertimeRulesBiz.getChangeType(Util.null2String(userId), signDate);
|
|
|
|
|
boolean holiday = KQHolidaySetBiz.isHoliday(Util.null2String(userId), signDate,true);
|
|
|
|
|
String fixedSerialid = Util.null2String(bb.getPropValue("project_hostar", "fixedSerialid"));
|
|
|
|
|
String weekendDefaultSerialid = Util.null2String(bb.getPropValue("project_hostar", "weekendDefaultSerialid"));
|
|
|
|
|
String holidayDefaultSerialid = Util.null2String(bb.getPropValue("project_hostar", "holidayDefaultSerialid"));
|
|
|
|
|
String fixedUserId = "";
|
|
|
|
|
//查询指定和考勤组成员
|
|
|
|
|
String query_sql = "select distinct typevalue from kq_groupmember where groupid = ? ";
|
|
|
|
|
rs.executeQuery(query_sql, fixedSerialid);
|
|
|
|
|
if (rs.next()) {
|
|
|
|
|
fixedUserId = rs.getString("typevalue");
|
|
|
|
|
}
|
|
|
|
|
boolean holiday = KQHolidaySetBiz.isHoliday(fixedUserId, signDate, true);
|
|
|
|
|
kqLog.info("format.holiday:" + holiday);
|
|
|
|
|
String sql = "insert into kq_shiftschedule(kqdate,serialid,resourceid,groupid,isdelete)values(?,?,?,?,?)";
|
|
|
|
|
//String sql = "insert into kq_shiftschedule(kqdate,serialid,resourceid,groupid,isdelete)values(?,?,?,?,?)";
|
|
|
|
|
String sql = "update kq_shiftschedule set serialid = ? where resourceid = ? and kqdate= ? and groupid = ? and isdelete = 0 ";
|
|
|
|
|
//考勤当天是节假日或者休息日
|
|
|
|
|
if (holiday) {
|
|
|
|
|
//休息班
|
|
|
|
|
boolean b = rt.executeUpdate(sql, signDate, "-1", Util.null2String(userId), groupid, "0");
|
|
|
|
|
//节假日休息班
|
|
|
|
|
boolean b = rt.executeUpdate(sql, holidayDefaultSerialid, Util.null2String(userId), signDate, groupid);
|
|
|
|
|
kqLog.info("PunchButtonCmd.b1:" + b);
|
|
|
|
|
} else {
|
|
|
|
|
String dybc = "";
|
|
|
|
|
//正常打卡,排对应打卡地点对应班次
|
|
|
|
|
//2.查询指定打卡地点的经纬度及范围的list
|
|
|
|
|
List<Map<String, String>> list2 = new ArrayList<>();
|
|
|
|
|
//2.1查询出打卡地点经纬度建模list
|
|
|
|
|
String sql2 = "select jd,wd,bj,dybc from uf_jwdbj";
|
|
|
|
|
rt.execute(sql2);
|
|
|
|
|
while (rt.next()) {
|
|
|
|
|
Map<String, String> map = new HashMap<>();
|
|
|
|
|
map.put("jd", Util.null2String(rt.getString("jd")));
|
|
|
|
|
map.put("wd", Util.null2String(rt.getString("wd")));
|
|
|
|
|
map.put("bj", Util.null2String(rt.getString("bj")));
|
|
|
|
|
map.put("dybc", Util.null2String(rt.getString("dybc")));
|
|
|
|
|
list2.add(map);
|
|
|
|
|
}
|
|
|
|
|
kqLog.info("PunchButtonCmd.list2:" + list2);
|
|
|
|
|
for (Map<String, String> map : list2) {
|
|
|
|
|
Double distance = new HostarUtil().calculateDistance(d_latitude, d_longitude, Util.getDoubleValue(map.get("wd")), Util.getDoubleValue(map.get("jd")));
|
|
|
|
|
if (distance <= Util.getDoubleValue(map.get("bj"))) {
|
|
|
|
|
dybc = map.get("dybc");
|
|
|
|
|
//周末休息班
|
|
|
|
|
// if (DateUtil.getWeek(signDate) == 6 || DateUtil.getWeek(signDate) == 7) {
|
|
|
|
|
// boolean b = rt.executeUpdate(sql, weekendDefaultSerialid, Util.null2String(userId), signDate, groupid);
|
|
|
|
|
// kqLog.info("PunchButtonCmd.b1:" + b);
|
|
|
|
|
// } else {
|
|
|
|
|
String dybc = "";
|
|
|
|
|
//正常打卡,排对应打卡地点对应班次
|
|
|
|
|
//2.查询指定打卡地点的经纬度及范围的list
|
|
|
|
|
List<Map<String, String>> list2 = new ArrayList<>();
|
|
|
|
|
//2.1查询出打卡地点经纬度建模list
|
|
|
|
|
String sql2 = "select jd,wd,bj,dybc from uf_jwdbj";
|
|
|
|
|
rt.execute(sql2);
|
|
|
|
|
while (rt.next()) {
|
|
|
|
|
Map<String, String> map = new HashMap<>();
|
|
|
|
|
map.put("jd", Util.null2String(rt.getString("jd")));
|
|
|
|
|
map.put("wd", Util.null2String(rt.getString("wd")));
|
|
|
|
|
map.put("bj", Util.null2String(rt.getString("bj")));
|
|
|
|
|
map.put("dybc", Util.null2String(rt.getString("dybc")));
|
|
|
|
|
list2.add(map);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
kqLog.info("PunchButtonCmd.dybc:" + dybc);
|
|
|
|
|
//设置考勤班次为对应班次
|
|
|
|
|
if(StringUtils.isNotBlank(dybc)){
|
|
|
|
|
boolean b = rt.executeUpdate(sql, signDate, dybc, Util.null2String(userId), groupid, "0");
|
|
|
|
|
kqLog.info("PunchButtonCmd.b2:" + b);
|
|
|
|
|
}
|
|
|
|
|
kqLog.info("PunchButtonCmd.list2:" + list2);
|
|
|
|
|
for (Map<String, String> map : list2) {
|
|
|
|
|
Double distance = new HostarUtil().calculateDistance(d_latitude, d_longitude, Util.getDoubleValue(map.get("wd")), Util.getDoubleValue(map.get("jd")));
|
|
|
|
|
if (distance <= Util.getDoubleValue(map.get("bj"))) {
|
|
|
|
|
dybc = map.get("dybc");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
kqLog.info("PunchButtonCmd.dybc:" + dybc);
|
|
|
|
|
//设置考勤班次为对应班次
|
|
|
|
|
if (StringUtils.isNotBlank(dybc)) {
|
|
|
|
|
boolean b = rt.executeUpdate(sql, dybc, Util.null2String(userId), signDate, groupid);
|
|
|
|
|
kqLog.info("PunchButtonCmd.b2:" + b);
|
|
|
|
|
}
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|