|
@@ -1,7 +1,6 @@
|
|
package org.fouram.service;
|
|
package org.fouram.service;
|
|
|
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
-import java.util.HashMap;
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
@@ -14,45 +13,20 @@ import org.fouram.core.util.DateUtil;
|
|
import org.fouram.core.util.LoggerUtil;
|
|
import org.fouram.core.util.LoggerUtil;
|
|
import org.fouram.core.util.Tools;
|
|
import org.fouram.core.util.Tools;
|
|
import org.fouram.entity.SapCheck;
|
|
import org.fouram.entity.SapCheck;
|
|
-import org.fouram.entity.SapCheckOption;
|
|
|
|
import org.fouram.entity.SapCheckReport;
|
|
import org.fouram.entity.SapCheckReport;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import com.google.common.collect.Lists;
|
|
|
|
|
|
+import com.google.common.collect.Maps;
|
|
import com.google.common.collect.Sets;
|
|
import com.google.common.collect.Sets;
|
|
|
|
|
|
import me.chanjar.weixin.cp.bean.oa.WxCpCheckinData;
|
|
import me.chanjar.weixin.cp.bean.oa.WxCpCheckinData;
|
|
-import me.chanjar.weixin.cp.bean.oa.WxCpCheckinOption;
|
|
|
|
-import me.chanjar.weixin.cp.bean.oa.WxCpCheckinOption.CheckinTime;
|
|
|
|
|
|
|
|
@Service
|
|
@Service
|
|
public class SapCheckService extends BaseService {
|
|
public class SapCheckService extends BaseService {
|
|
-
|
|
|
|
- @SuppressWarnings("unchecked")
|
|
|
|
- public List<String> selectCheckUserList() throws Exception {
|
|
|
|
- return (List<String>) findList("SapCheckMapper.selectCheckUserList", null);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public Map<String, List<String>> groupList(List<String> list) {
|
|
|
|
- int listSize = list.size();
|
|
|
|
- int toIndex = 100;
|
|
|
|
- Map<String, List<String>> map = new HashMap<>(); // 用map存起来新的分组后数据
|
|
|
|
- int keyToken = 0;
|
|
|
|
- for (int i = 0; i < list.size(); i += 100) {
|
|
|
|
- if (i + 100 > listSize) { // 作用为toIndex最后没有100条数据则剩余几条newList中就装几条
|
|
|
|
- toIndex = listSize - i;
|
|
|
|
- }
|
|
|
|
- List<String> newList = list.subList(i, i + toIndex);
|
|
|
|
- List<String> userIds = Lists.newArrayList();
|
|
|
|
- for (String userId : newList) {
|
|
|
|
- userIds.add(userId);
|
|
|
|
- }
|
|
|
|
- map.put("keyName" + keyToken, userIds);
|
|
|
|
- keyToken++;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return map;
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private WxUserService wxUserService;
|
|
|
|
|
|
public void saveAllUserCheckData(Date startDate, Date endDate) throws Exception {
|
|
public void saveAllUserCheckData(Date startDate, Date endDate) throws Exception {
|
|
LoggerUtil.info("执行微信打卡开始" + DateUtil.getTime());
|
|
LoggerUtil.info("执行微信打卡开始" + DateUtil.getTime());
|
|
@@ -61,7 +35,7 @@ public class SapCheckService extends BaseService {
|
|
update("SapCheckMapper.truncateCheckoff", null);
|
|
update("SapCheckMapper.truncateCheckoff", null);
|
|
update("SapCheckMapper.truncateCheckout", null);
|
|
update("SapCheckMapper.truncateCheckout", null);
|
|
|
|
|
|
- List<String> userIds = selectCheckUserList();
|
|
|
|
|
|
+ List<String> userIds = wxUserService.selectAllUserIds();
|
|
Map<String, List<String>> map = groupList(userIds);
|
|
Map<String, List<String>> map = groupList(userIds);
|
|
for (String key : map.keySet()) {
|
|
for (String key : map.keySet()) {
|
|
List<WxCpCheckinData> checkinDatas = WXCpOaUtil.getCheckinData(startDate, endDate, map.get(key));
|
|
List<WxCpCheckinData> checkinDatas = WXCpOaUtil.getCheckinData(startDate, endDate, map.get(key));
|
|
@@ -81,39 +55,19 @@ public class SapCheckService extends BaseService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ Map<String, String> param = Maps.newHashMap();
|
|
|
|
+ param.put("startDay", DateUtil.getDay(startDate));
|
|
|
|
+ param.put("endDay", DateUtil.getDay(endDate));
|
|
|
|
+ update("SapCheckMapper.deleteCheckoutStart", param);
|
|
|
|
+ update("SapCheckMapper.deleteCheckoutEnd", param);
|
|
|
|
+ update("SapCheckMapper.saveCheckoutStart1", param);
|
|
|
|
+ update("SapCheckMapper.saveCheckoutStart2", param);
|
|
|
|
+ update("SapCheckMapper.saveCheckoutEnd", param);
|
|
|
|
+
|
|
LoggerUtil.info("执行微信打卡结束" + DateUtil.getTime());
|
|
LoggerUtil.info("执行微信打卡结束" + DateUtil.getTime());
|
|
}
|
|
}
|
|
|
|
|
|
- public void saveCheckoutStartAndEndData() throws Exception {
|
|
|
|
- update("SapCheckMapper.truncateCheckoutStart", null);
|
|
|
|
- update("SapCheckMapper.truncateCheckoutEnd", null);
|
|
|
|
- update("SapCheckMapper.saveCheckoutStart1", null);
|
|
|
|
- update("SapCheckMapper.saveCheckoutStart2", null);
|
|
|
|
- update("SapCheckMapper.saveCheckoutEnd", null);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public void saveAllUserCheckOption() throws Exception {
|
|
|
|
- update("SapCheckMapper.truncateCheckOption", null);
|
|
|
|
-
|
|
|
|
- List<String> users = selectCheckUserList();
|
|
|
|
- Map<String, List<String>> map = groupList(users);
|
|
|
|
- List<Date> datetimes = Lists.newArrayList();
|
|
|
|
- datetimes.add(DateUtil.sdfTime.parse("2020-05-07 00:00:00"));
|
|
|
|
- for (String key : map.keySet()) {
|
|
|
|
- List<WxCpCheckinOption> options = WXCpOaUtil.getCheckinOption(datetimes, map.get(key));
|
|
|
|
- for (WxCpCheckinOption option : options) {
|
|
|
|
- if (option.getGroup() != null && !option.getGroup().getCheckinDate().isEmpty()) {
|
|
|
|
- SapCheckOption check = new SapCheckOption();
|
|
|
|
- CheckinTime checkinTime = option.getGroup().getCheckinDate().get(0).getCheckinTime()[0];
|
|
|
|
- check.setUserId(option.getUserId());
|
|
|
|
- check.setWorkSec(checkinTime.getWorkSec());
|
|
|
|
- check.setOffWorkSec(checkinTime.getOffWorkSec());
|
|
|
|
- saveCheckinOption(check);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
public void saveCheckin(SapCheck check) throws Exception {
|
|
public void saveCheckin(SapCheck check) throws Exception {
|
|
save("SapCheckMapper.saveCheckin", check);
|
|
save("SapCheckMapper.saveCheckin", check);
|
|
}
|
|
}
|
|
@@ -126,10 +80,6 @@ public class SapCheckService extends BaseService {
|
|
save("SapCheckMapper.saveCheckout", check);
|
|
save("SapCheckMapper.saveCheckout", check);
|
|
}
|
|
}
|
|
|
|
|
|
- public void saveCheckinOption(SapCheckOption check) throws Exception {
|
|
|
|
- save("SapCheckMapper.saveCheckinOption", check);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
@SuppressWarnings("unchecked")
|
|
@SuppressWarnings("unchecked")
|
|
public void updateReportBaseData() throws Exception {
|
|
public void updateReportBaseData() throws Exception {
|
|
// 处理重复数据
|
|
// 处理重复数据
|