钉钉打卡,被覆盖代码处理

dev_dxf
dxfeng 11 months ago
parent 29871495be
commit 32f0266e80

@ -1,5 +1,6 @@
package com.engine.hrm.cmd.emmanager; package com.engine.hrm.cmd.emmanager;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.engine.common.biz.AbstractCommonCommand; import com.engine.common.biz.AbstractCommonCommand;
@ -17,8 +18,6 @@ import weaver.conn.BatchRecordSet;
import weaver.conn.RecordSet; import weaver.conn.RecordSet;
import weaver.general.Util; import weaver.general.Util;
import com.engine.kq.biz.KQFormatData; import com.engine.kq.biz.KQFormatData;
import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
@ -35,7 +34,7 @@ public class SynKqData4EMCmd extends AbstractCommonCommand<Map<String, Object>>
this.params = params; this.params = params;
} }
// "checkindata": [{ // "checkindata": [{
// "userid" : "100", // "userid" : "100",
// "checkin_type" : 1, // "checkin_type" : 1,
// "checkin_time" : "1492617610", // "checkin_time" : "1492617610",
@ -84,6 +83,12 @@ public class SynKqData4EMCmd extends AbstractCommonCommand<Map<String, Object>>
for (int i = 0; datas != null && i < datas.size(); i++) { for (int i = 0; datas != null && i < datas.size(); i++) {
JSONObject data = datas.getJSONObject(i); JSONObject data = datas.getJSONObject(i);
String userid = Util.null2String(data.getString("userid")); String userid = Util.null2String(data.getString("userid"));
//将checkin_time放在前面是用于userid为空的时候日志的打印便于定位云桥推送的问题数据因为刚刚肉眼看了1w+的数据量,乏了
String checkin_time = Util.null2String(data.getString("checkin_time"));
if(userid.length()==0){
writeLog("userid为空或者云桥推送数据有问题:checkin_time=="+checkin_time);
continue;
}
String signtype = Util.null2String(data.getString("checkin_type")); String signtype = Util.null2String(data.getString("checkin_type"));
boolean isOutSide = false; //是否是外勤打卡数据 boolean isOutSide = false; //是否是外勤打卡数据
String outsidesign = ""; //人员所在考勤组是否开启外勤签到转考勤 String outsidesign = ""; //人员所在考勤组是否开启外勤签到转考勤
@ -92,7 +97,7 @@ public class SynKqData4EMCmd extends AbstractCommonCommand<Map<String, Object>>
if (kqGroupEntity != null) { if (kqGroupEntity != null) {
outsidesign = kqGroupEntity.getOutsidesign(); outsidesign = kqGroupEntity.getOutsidesign();
} }
String checkin_time = Util.null2String(data.getString("checkin_time"));
if(checkin_time.length()==0)continue; if(checkin_time.length()==0)continue;
String[] tmpDateTime = Util.splitString(DateUtil.getFullDate(new Date(new Long(checkin_time)* 1000L))," "); String[] tmpDateTime = Util.splitString(DateUtil.getFullDate(new Date(new Long(checkin_time)* 1000L))," ");
String signdate = tmpDateTime[0].trim(); String signdate = tmpDateTime[0].trim();
@ -107,6 +112,13 @@ public class SynKqData4EMCmd extends AbstractCommonCommand<Map<String, Object>>
String wifiname = Util.null2String(data.getString("wifiname")); String wifiname = Util.null2String(data.getString("wifiname"));
String wifimac = Util.null2String(data.getString("wifimac")); String wifimac = Util.null2String(data.getString("wifimac"));
String notes = Util.null2String(data.getString("notes")); String notes = Util.null2String(data.getString("notes"));
String deviceId = Util.null2String(data.getString("deviceId"));
String deviceInfo = "";
if(!"".equals(deviceId)){
Map<String, Object> tmpdate = new HashMap<String, Object>();
tmpdate.put("deviceId",deviceId);
deviceInfo = JSONObject.toJSONString(tmpdate);
}
String exception_type = Util.null2String(data.getString("exception_type")); String exception_type = Util.null2String(data.getString("exception_type"));
String timeResult = Util.null2String(data.getString("timeResult")); String timeResult = Util.null2String(data.getString("timeResult"));
@ -118,7 +130,7 @@ public class SynKqData4EMCmd extends AbstractCommonCommand<Map<String, Object>>
if(signtype.equalsIgnoreCase("3")) isOutSide = true; if(signtype.equalsIgnoreCase("3")) isOutSide = true;
//过滤异常数据 //过滤异常数据
if(exception_type.length()>0&&(exception_type.indexOf("未打卡")>=0 || exception_type.indexOf("地点异常")>=0 || exception_type.indexOf("wifi异常")>=0)){ if(exception_type.length()>0&&(exception_type.indexOf("未打卡")>=0 || exception_type.indexOf("地点异常")>=0 || exception_type.indexOf("wifi异常")>=0)){
continue; // continue;
} }
}else if("2".equals(cptype)){ }else if("2".equals(cptype)){
//钉钉打卡 //钉钉打卡
@ -126,7 +138,7 @@ public class SynKqData4EMCmd extends AbstractCommonCommand<Map<String, Object>>
// 如果是不合法打卡数据不传给OA // 如果是不合法打卡数据不传给OA
boolean notLegal = "".equalsIgnoreCase(timeResult) && "".equals(locationResult); boolean notLegal = "".equalsIgnoreCase(timeResult) && "".equals(locationResult);
if(notLegal) { if(notLegal) {
continue; // continue;
} }
if("Outside".equals(locationResult)) isOutSide = true; if("Outside".equals(locationResult)) isOutSide = true;
//过滤异常数据 //过滤异常数据
@ -151,9 +163,10 @@ public class SynKqData4EMCmd extends AbstractCommonCommand<Map<String, Object>>
param.add(longitude); param.add(longitude);
param.add(latitude); param.add(latitude);
param.add(memo); param.add(memo);
param.add(deviceInfo);
lsParam.add(param); lsParam.add(param);
String formatData = userid+"|"+signdate; String formatData = userid+"|"+signdate+"|"+signtime;
if(!lsFormatData.contains(formatData)){ if(!lsFormatData.contains(formatData)){
lsFormatData.add(formatData); lsFormatData.add(formatData);
} }
@ -171,7 +184,7 @@ public class SynKqData4EMCmd extends AbstractCommonCommand<Map<String, Object>>
param_out.add("1"); param_out.add("1");
lsParam_out.add(param_out); lsParam_out.add(param_out);
String formatData_out = userid+"|"+signdate; String formatData_out = userid+"|"+signdate+"|"+signtime;
if(!lsFormatData_out.contains(formatData_out)){ if(!lsFormatData_out.contains(formatData_out)){
lsFormatData_out.add(formatData_out); lsFormatData_out.add(formatData_out);
} }
@ -193,7 +206,7 @@ public class SynKqData4EMCmd extends AbstractCommonCommand<Map<String, Object>>
param_out.add("1"); param_out.add("1");
lsParam_out.add(param_out); lsParam_out.add(param_out);
String formatData_out = userid+"|"+signdate; String formatData_out = userid+"|"+signdate+"|"+signtime;
if(!lsFormatData_out.contains(formatData_out)){ if(!lsFormatData_out.contains(formatData_out)){
lsFormatData_out.add(formatData_out); lsFormatData_out.add(formatData_out);
} }
@ -210,9 +223,10 @@ public class SynKqData4EMCmd extends AbstractCommonCommand<Map<String, Object>>
param.add(longitude); param.add(longitude);
param.add(latitude); param.add(latitude);
param.add(memo); param.add(memo);
param.add(deviceInfo);
lsParam.add(param); lsParam.add(param);
String formatData = userid+"|"+signdate; String formatData = userid+"|"+signdate+"|"+signtime;
if(!lsFormatData.contains(formatData)){ if(!lsFormatData.contains(formatData)){
lsFormatData.add(formatData); lsFormatData.add(formatData);
} }
@ -239,6 +253,7 @@ public class SynKqData4EMCmd extends AbstractCommonCommand<Map<String, Object>>
delParams = new ArrayList<>(); delParams = new ArrayList<>();
delParams.add(formatData[0]); delParams.add(formatData[0]);
delParams.add(formatData[1]); delParams.add(formatData[1]);
delParams.add(formatData[2]);
lsDelParams.add(delParams); lsDelParams.add(delParams);
String resourceId = formatData[0]; String resourceId = formatData[0];
@ -261,19 +276,20 @@ public class SynKqData4EMCmd extends AbstractCommonCommand<Map<String, Object>>
delParams = new ArrayList<>(); delParams = new ArrayList<>();
delParams.add(formatData[0]); delParams.add(formatData[0]);
delParams.add(formatData[1]); delParams.add(formatData[1]);
delParams.add(formatData[2]);
lsDelParams_out.add(delParams); lsDelParams_out.add(delParams);
//使用executeBatchSql删除不了暂时用这种方法 //使用executeBatchSql删除不了暂时用这种方法
sql = " delete from mobile_sign where isImport='1' and operater ='"+formatData[0]+"' and operate_date = '"+formatData[1]+"'"; sql = " delete from mobile_sign where isImport='1' and operater ='"+formatData[0]+"' and operate_date = '"+formatData[1]+"' and operate_time='"+formatData[2]+"'";
rs.executeUpdate(sql); rs.executeUpdate(sql);
} }
//删除本次同步数据 //删除本次同步数据
sql = " delete from hrmschedulesign where (signfrom='EMSyn' or signfrom = 'EMSyn_out') and userid =? and signdate = ? "; sql = " delete from hrmschedulesign where (signfrom='EMSyn' or signfrom = 'EMSyn_out') and userid =? and signdate = ? and signtime=? ";
bRs.executeBatchSql(sql, lsDelParams); bRs.executeBatchSql(sql, lsDelParams);
//插入同步数据 //插入同步数据
sql = " insert into hrmschedulesign (userid,userType,signtype,signdate,signtime,signfrom,isincom,addr,longitude,latitude,memo) " + sql = " insert into hrmschedulesign (userid,userType,signtype,signdate,signtime,signfrom,isincom,addr,longitude,latitude,memo,deviceInfo) " +
" values(?,?,?,?,?,?,?,?,?,?,?)"; " values(?,?,?,?,?,?,?,?,?,?,?,?)";
bRs.executeBatchSql(sql, lsParam); bRs.executeBatchSql(sql, lsParam);
//插入外勤同步数据 //插入外勤同步数据

Loading…
Cancel
Save