liupeng 4 years ago
parent
commit
6543626335

+ 3 - 3
code/sapparent/sapcms/src/main/java/org/fouram/controller/ReportController.java

@@ -6,7 +6,7 @@ import org.fouram.core.util.AppUtil;
 import org.fouram.core.util.AppUtil.ResultConstant;
 import org.fouram.core.util.LoggerUtil;
 import org.fouram.service.CheckTaskService;
-import org.fouram.service.SapCheckService;
+import org.fouram.service.WxCheckService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 public class ReportController extends BaseController {
 
 	@Autowired
-	private SapCheckService sapCheckService;
+	private WxCheckService wxCheckService;
 	@Autowired
 	private CheckTaskService checkTaskService;
 
@@ -59,7 +59,7 @@ public class ReportController extends BaseController {
 			if (StringUtils.isBlank(checkinDay)) {
 				return AppUtil.error("参数checkinDay为空");
 			}
-			sapCheckService.updateReportResultData(checkinDay, checkinDay, "23");
+			wxCheckService.updateReportResultData(checkinDay, checkinDay, "23");
 			return AppUtil.success();
 		} catch (Exception e) {
 			LoggerUtil.error(e);

+ 4 - 4
code/sapparent/sapservice/src/main/java/org/fouram/core/base/service/BaseService.java

@@ -102,13 +102,13 @@ public abstract class BaseService {
 		return str;
 	}
 
-	public Map<String, List<String>> groupList(List<String> list) {
+	public Map<String, List<String>> groupList(List<String> list, int groupSize) {
 		int listSize = list.size();
-		int toIndex = 100;
+		int toIndex = groupSize;
 		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中就装几条
+		for (int i = 0; i < list.size(); i += groupSize) {
+			if (i + groupSize > listSize) { // 作用为toIndex最后没有100条数据则剩余几条newList中就装几条
 				toIndex = listSize - i;
 			}
 			List<String> newList = list.subList(i, i + toIndex);

+ 10 - 10
code/sapparent/sapservice/src/main/java/org/fouram/service/CheckTaskService.java

@@ -13,17 +13,17 @@ public class CheckTaskService {
 	@Autowired
 	private WxUserService wxUserService;
 	@Autowired
-	private WxDepartService wxDepartService;
+	private WxCheckService wxCheckService;
 	@Autowired
-	private SapCheckService sapCheckService;
+	private WxDepartService wxDepartService;
 	@Autowired
 	private SapCheckdateService sapCheckdateService;
 	@Autowired
-	private SapCheckOptionService sapCheckOptionService;
+	private WxCheckOptionService wxCheckOptionService;
 	@Autowired
 	private SapEmployeeTimeService employeeTimeService;
 	@Autowired
-	private SapApprovalInfoService sapApprovalInfoService;
+	private WxApprovalInfoService wxApprovalInfoService;
 
 	public void taskBiz() {
 		LoggerUtil.info(DateUtil.getTime());
@@ -53,23 +53,23 @@ public class CheckTaskService {
 		LoggerUtil.info("saveWxDeparts:" + DateUtil.getTime());
 		wxUserService.saveWxUsers();
 		LoggerUtil.info("saveWxUsers:" + DateUtil.getTime());
-		sapCheckService.saveCheckInOffOuts(startDay, endDay);
+		wxCheckService.saveCheckInOffOuts(startDay, endDay);
 		LoggerUtil.info("saveCheckInOffOuts:" + DateUtil.getTime());
 		// 判断打卡记录小于10条记录认为是假期
-		if (sapCheckService.queryCheckInTotal() < 10) {
+		if (wxCheckService.queryCheckInTotal() < 10) {
 			return;
 		}
 		sapCheckdateService.saveCheckout(startDay);
 		LoggerUtil.info("saveCheckout:" + DateUtil.getTime());
 		employeeTimeService.saveEmployeeTimes();
 		LoggerUtil.info("saveEmployeeTimes:" + DateUtil.getTime());
-		sapCheckOptionService.saveOptions(endDay);
+		wxCheckOptionService.saveOptions(endDay);
 		LoggerUtil.info("saveOptions:" + DateUtil.getTime());
-		sapApprovalInfoService.saveApprovalInfos(endDay.substring(0, 7));
+		wxApprovalInfoService.saveApprovalInfos(endDay.substring(0, 7));
 		LoggerUtil.info("saveApprovalInfos:" + DateUtil.getTime());
-		sapCheckService.saveReportResultData(startDay, endDay);
+		wxCheckService.saveReportResultData(startDay, endDay);
 		LoggerUtil.info("saveReportResultData:" + DateUtil.getTime());
-		sapCheckService.updateReportResultData(startDay, endDay, hour);
+		wxCheckService.updateReportResultData(startDay, endDay, hour);
 		LoggerUtil.info("updateReportResultData:" + DateUtil.getTime());
 	}
 }

+ 18 - 12
code/sapparent/sapservice/src/main/java/org/fouram/service/SapEmployeeTimeService.java

@@ -34,15 +34,18 @@ public class SapEmployeeTimeService extends BaseService {
 	@SuppressWarnings("unchecked")
 	public void saveEmployeeTimes() throws Exception {
 		List<String> allUserIds = wxUserService.selectAllUserIds();
-		String url = "https://api15.sapsf.cn/odata/v2/EmployeeTime?$filter=userId in %s&$format=json";
-		Map<String, List<String>> map = groupList(allUserIds);
+		Map<String, List<String>> map = groupList(allUserIds, 25);
+		String url = null;
 		for (String key : map.keySet()) {
-			url = String.format(url, getUserIdList(map.get(key)));
+			System.out.println(getUserIdList(map.get(key)));
+			url = String.format("https://api15.sapsf.cn/odata/v2/EmployeeTime?$filter=userId in %s&$format=json",
+					getUserIdList(map.get(key)));
 			JsonNode node = requestService.getForObject(url, getHttpHeaders());
 			SapEmployeeTime dbEmployeeTime = null;
 			SapEmployeeTime employeeTime = null;
 			if (node != null) {
 				Iterator<JsonNode> iterator = node.get("d").get("results").elements();
+				int i = 0;
 				while (iterator.hasNext()) {
 					JsonNode userNode = iterator.next();
 					String externalCode = JsonNodeUtil.getValue(userNode, "externalCode");
@@ -66,7 +69,8 @@ public class SapEmployeeTimeService extends BaseService {
 					String startTime = JsonNodeUtil.getValue(userNode, "startTime");
 					String loaEndJobInfoId = JsonNodeUtil.getValue(userNode, "loaEndJobInfoId");
 					String approvalStatus = JsonNodeUtil.getValue(userNode, "approvalStatus");
-					String cancellationWorkflowRequestId = JsonNodeUtil.getValue(userNode, "cancellationWorkflowRequestId");
+					String cancellationWorkflowRequestId = JsonNodeUtil.getValue(userNode,
+							"cancellationWorkflowRequestId");
 					String deductionQuantity = JsonNodeUtil.getValue(userNode, "deductionQuantity");
 					String editable = JsonNodeUtil.getValue(userNode, "editable");
 					String lastModifiedBy = JsonNodeUtil.getValue(userNode, "lastModifiedBy");
@@ -86,14 +90,14 @@ public class SapEmployeeTimeService extends BaseService {
 							.createdDateTime(createdDateTime).timeType(timeType)
 							.loaExpectedReturnDate(loaExpectedReturnDate).flexibleRequesting(flexibleRequesting)
 							.timeRecordOrigin(timeRecordOrigin).mdfSystemRecordStatus(mdfSystemRecordStatus)
-							.custPeriod(custPeriod).quantityInHours(quantityInHours).loaStartJobInfoId(loaStartJobInfoId)
-							.startDate(startDate).startDateTime(startDateTime).endDate(endDate).endDateTime(endDateTime)
-							.displayQuantity(displayQuantity).quantityInDays(quantityInDays).startTime(startTime)
-							.loaEndJobInfoId(loaEndJobInfoId).approvalStatus(approvalStatus)
-							.cancellationWorkflowRequestId(cancellationWorkflowRequestId)
+							.custPeriod(custPeriod).quantityInHours(quantityInHours)
+							.loaStartJobInfoId(loaStartJobInfoId).startDate(startDate).startDateTime(startDateTime)
+							.endDate(endDate).endDateTime(endDateTime).displayQuantity(displayQuantity)
+							.quantityInDays(quantityInDays).startTime(startTime).loaEndJobInfoId(loaEndJobInfoId)
+							.approvalStatus(approvalStatus).cancellationWorkflowRequestId(cancellationWorkflowRequestId)
 							.deductionQuantity(deductionQuantity).editable(editable).lastModifiedBy(lastModifiedBy)
-							.workflowRequestId(workflowRequestId).undeterminedEndDate(undeterminedEndDate).userId(userId)
-							.recurrenceGroup(recurrenceGroup).createdBy(createdBy)
+							.workflowRequestId(workflowRequestId).undeterminedEndDate(undeterminedEndDate)
+							.userId(userId).recurrenceGroup(recurrenceGroup).createdBy(createdBy)
 							.workflowInitiatedByAdmin(workflowInitiatedByAdmin).comment(comment)
 							.fractionQuantity(fractionQuantity).endTime(endTime)
 							.originalQuantityInDays(originalQuantityInDays).build();
@@ -107,10 +111,12 @@ public class SapEmployeeTimeService extends BaseService {
 					} else {
 						saveOne(employeeTime);
 					}
+					i++;
 				}
+				System.out.println(i);
 			}
 		}
-		
+
 		// 更新所有未通过的为无效
 		update("SapEmployeeTimeMapper.updateUnApprovedDelete", null);
 

+ 1 - 1
code/sapparent/sapservice/src/main/java/org/fouram/service/SapApprovalInfoService.java

@@ -10,7 +10,7 @@ import org.fouram.entity.SapApprovalInfo;
 import org.springframework.stereotype.Service;
 
 @Service
-public class SapApprovalInfoService extends BaseService {
+public class WxApprovalInfoService extends BaseService {
 
 	/**
 	 * 保存补卡记录

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

@@ -17,14 +17,14 @@ import me.chanjar.weixin.cp.bean.oa.WxCpCheckinOption;
 import me.chanjar.weixin.cp.bean.oa.WxCpCheckinOption.CheckinTime;
 
 @Service
-public class SapCheckOptionService extends BaseService {
+public class WxCheckOptionService extends BaseService {
 	
 	@Autowired
 	private WxUserService wxUserService;
 
 	public void saveOptions(String endDay) throws Exception {
 		List<String> userIds = wxUserService.selectAllUserIds();
-		Map<String, List<String>> map = groupList(userIds);
+		Map<String, List<String>> map = groupList(userIds, 100);
 		List<Date> datetimes = Lists.newArrayList();
 		datetimes.add(DateUtil.sdfTime.parse(endDay + " 00:00:00"));
 		for (String key : map.keySet()) {

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

@@ -21,7 +21,7 @@ import com.google.common.collect.Sets;
 import me.chanjar.weixin.cp.bean.oa.WxCpCheckinData;
 
 @Service
-public class SapCheckService extends BaseService {
+public class WxCheckService extends BaseService {
 
 	@Autowired
 	private WxUserService wxUserService;
@@ -36,7 +36,7 @@ public class SapCheckService extends BaseService {
 		Date endDate = DateUtil.sdfTime.parse(endDay + " 23:59:59");
 
 		List<String> userIds = wxUserService.selectAllUserIds();
-		Map<String, List<String>> map = groupList(userIds);
+		Map<String, List<String>> map = groupList(userIds, 100);
 		for (String key : map.keySet()) {
 			List<WxCpCheckinData> checkinDatas = WXCpOaUtil.getCheckinData(startDate, endDate, map.get(key));
 			for (WxCpCheckinData data : checkinDatas) {