liupeng 5 роки тому
батько
коміт
2eb6b3095f

+ 30 - 2
code/sapparent/sapservice/src/main/java/org/fouram/service/SapCheckService.java

@@ -1,6 +1,8 @@
 package org.fouram.service;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.fouram.core.base.service.BaseService;
 import org.fouram.core.plugin.weixin.cp.util.WXCpOaUtil;
@@ -21,15 +23,40 @@ public class SapCheckService extends BaseService {
 	@Autowired
 	private SapUserService userService;
 
+	public Map<String, List<String>> groupList(List<SapUser> 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<SapUser> newList = list.subList(i, i + toIndex);
+			List<String> userIds = Lists.newArrayList();
+			for (SapUser user : newList) {
+				userIds.add(user.getUserId());
+			}
+			map.put("keyName" + keyToken, userIds);
+			keyToken++;
+		}
+
+		return map;
+	}
+
 	public void saveAllUserCheckData() throws Exception {
 		List<SapUser> users = userService.selectSuccessList();
+		Map<String, List<String>> map = groupList(users);
 		int count = 0;
-		for (SapUser user : users) {
+		for (String key : map.keySet()) {
 			count = count + 1;
 			List<WxCpCheckinData> checkinDatas = WXCpOaUtil.getCheckinData(
 					DateUtil.sdfTime.parse("2020-04-01 00:00:00"), DateUtil.sdfTime.parse("2020-04-30 23:59:59"),
-					Lists.newArrayList(user.getUserId()));
+					map.get(key));
+			System.out.println(checkinDatas.size());
+			int subCount = 0;
 			for (WxCpCheckinData data : checkinDatas) {
+				subCount = subCount + 1;
 				if (data.getCheckinType().equals("上班打卡")) {
 					saveCheckin(data);
 				} else if (data.getCheckinType().equals("下班打卡")) {
@@ -39,6 +66,7 @@ public class SapCheckService extends BaseService {
 				} else {
 					System.out.println(data);
 				}
+				System.out.println(subCount);
 			}
 			System.out.println(count);
 		}