liupeng 5 år sedan
förälder
incheckning
6214c08be1

+ 11 - 0
code/sapparent/sapservice/src/main/java/org/fouram/core/plugin/weixin/cp/core/MyWxCpOaService.java

@@ -0,0 +1,11 @@
+package org.fouram.core.plugin.weixin.cp.core;
+
+import lombok.NonNull;
+import me.chanjar.weixin.common.error.WxErrorException;
+import me.chanjar.weixin.cp.api.WxCpOaService;
+
+public interface MyWxCpOaService extends WxCpOaService {
+
+	String getApprovalDetailToString(@NonNull String spNo) throws WxErrorException;
+
+}

+ 29 - 0
code/sapparent/sapservice/src/main/java/org/fouram/core/plugin/weixin/cp/core/MyWxCpOaServiceImpl.java

@@ -0,0 +1,29 @@
+package org.fouram.core.plugin.weixin.cp.core;
+
+import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.Oa.GET_APPROVAL_DETAIL;
+
+import com.google.gson.JsonObject;
+
+import lombok.NonNull;
+import me.chanjar.weixin.common.error.WxErrorException;
+import me.chanjar.weixin.cp.api.WxCpService;
+import me.chanjar.weixin.cp.api.impl.WxCpOaServiceImpl;
+
+public class MyWxCpOaServiceImpl extends WxCpOaServiceImpl implements MyWxCpOaService {
+	
+	private final WxCpService mainService;
+	
+	public MyWxCpOaServiceImpl(WxCpService mainService) {
+		super(mainService);
+		this.mainService = mainService;
+	}
+
+	@Override
+	public String getApprovalDetailToString(@NonNull String spNo) throws WxErrorException {
+		JsonObject jsonObject = new JsonObject();
+		jsonObject.addProperty("sp_no", spNo);
+		final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_APPROVAL_DETAIL);
+		String responseContent = this.mainService.post(url, jsonObject.toString());
+		return responseContent;
+	}
+}

+ 2 - 4
code/sapparent/sapservice/src/main/java/org/fouram/core/plugin/weixin/cp/core/WXCpOaApprovalBase.java

@@ -2,9 +2,7 @@ package org.fouram.core.plugin.weixin.cp.core;
 
 import org.fouram.core.util.ConfConfig;
 
-import me.chanjar.weixin.cp.api.WxCpOaService;
 import me.chanjar.weixin.cp.api.WxCpService;
-import me.chanjar.weixin.cp.api.impl.WxCpOaServiceImpl;
 import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
 import me.chanjar.weixin.cp.config.impl.WxCpDefaultConfigImpl;
 
@@ -17,7 +15,7 @@ public class WXCpOaApprovalBase {
 
 
 	public static final WxCpService service = new WxCpServiceImpl();
-	public static final WxCpOaService oaApprovalService;
+	public static final MyWxCpOaService oaApprovalService;
 	static {
 		WxCpDefaultConfigImpl configStorage = new WxCpDefaultConfigImpl();
 		configStorage.setCorpId(ConfConfig.getConfigString("wxCp.corpId"));
@@ -25,6 +23,6 @@ public class WXCpOaApprovalBase {
 		configStorage.setAgentId(ConfConfig.getConfigInteger("wxCp.oaApproval.agentId"));
 		// 初始化基础service
 		service.setWxCpConfigStorage(configStorage);
-		oaApprovalService = new WxCpOaServiceImpl(service);
+		oaApprovalService = new MyWxCpOaServiceImpl(service);
 	}
 }

+ 30 - 15
code/sapparent/sapservice/src/main/java/org/fouram/core/plugin/weixin/cp/util/WXCpOaUtil.java

@@ -7,7 +7,9 @@ import java.util.Date;
 import java.util.List;
 
 import org.fouram.core.util.DateUtil;
+import org.fouram.entity.SapApprovalInfo;
 
+import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
 
 import me.chanjar.weixin.common.error.WxErrorException;
@@ -17,6 +19,7 @@ import me.chanjar.weixin.cp.bean.oa.WxCpApprovalInfoQueryFilter;
 import me.chanjar.weixin.cp.bean.oa.WxCpApprovalInfoQueryFilter.KEY;
 import me.chanjar.weixin.cp.bean.oa.WxCpCheckinData;
 import me.chanjar.weixin.cp.bean.oa.WxCpCheckinOption;
+import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
 
 /**
  * 企业微信用户工具类
@@ -47,32 +50,46 @@ public class WXCpOaUtil {
 			return Lists.newArrayList();
 		}
 	}
-	
+
 	public static List<WxCpApprovalInfo> getAllApprovalInfo(Date startTime, Date endTime) throws WxErrorException {
 		List<WxCpApprovalInfo> result = Lists.newArrayList();
 		Integer cursor = 0;
-		while(true) {
+		while (true) {
 			WxCpApprovalInfo approvalInfo = getApprovalInfo(startTime, endTime, cursor);
 			result.add(approvalInfo);
-			if(approvalInfo.getNextCursor() != null) {
+			if (approvalInfo.getNextCursor() != null) {
 				cursor = approvalInfo.getNextCursor();
-			}else {
+			} else {
 				return result;
 			}
 		}
 	}
-	
-	public static List<WxCpApprovalDetailResult> getApprovalDetailList(Date startTime, Date endTime) throws WxErrorException {
-		List<WxCpApprovalDetailResult> result = Lists.newArrayList();
-		for(WxCpApprovalInfo approvalInfo : getAllApprovalInfo(startTime, endTime)) {
-			for(String spNo : approvalInfo.getSpNoList()) {
-				result.add(oaApprovalService.getApprovalDetail(spNo));
+
+	public static List<SapApprovalInfo> getApprovalDetailList(Date startTime, Date endTime) throws WxErrorException {
+		List<SapApprovalInfo> result = Lists.newArrayList();
+		int i = 0;
+		for (WxCpApprovalInfo approvalInfo : getAllApprovalInfo(startTime, endTime)) {
+			for (String spNo : approvalInfo.getSpNoList()) {
+				i = i + 1;
+				String responseContent = oaApprovalService.getApprovalDetailToString(spNo);
+				if (responseContent.contains("\"time\"")) {
+					String str = responseContent.substring(responseContent.indexOf("\"time\""));
+					String time = JSONObject.parseObject("{" + str.substring(0, str.indexOf("}")) + "}").get("time")
+							.toString();
+					String userId = WxCpGsonBuilder.create().fromJson(responseContent, WxCpApprovalDetailResult.class)
+							.getInfo().getApplier().getUserId();
+					SapApprovalInfo info = SapApprovalInfo.builder().userId(userId).time(time)
+							.day(DateUtil.getDay(new Date(Long.valueOf(time) * 1000))).build();
+					result.add(info);
+				}
+				System.out.println(i);
 			}
 		}
 		return result;
 	}
 
-	public static WxCpApprovalInfo getApprovalInfo(Date startTime, Date endTime, Integer cursor) throws WxErrorException {
+	public static WxCpApprovalInfo getApprovalInfo(Date startTime, Date endTime, Integer cursor)
+			throws WxErrorException {
 		List<WxCpApprovalInfoQueryFilter> filters = Lists.newArrayList();
 		WxCpApprovalInfoQueryFilter filter1 = new WxCpApprovalInfoQueryFilter();
 		filter1.setKey(KEY.TEMPLATE_ID);
@@ -86,9 +103,7 @@ public class WXCpOaUtil {
 	}
 
 	public static void main(String[] args) throws Exception {
-		for(WxCpApprovalDetailResult approvalInfo : WXCpOaUtil.getApprovalDetailList(
-				DateUtil.sdfTime.parse("2020-04-01 00:00:00"), DateUtil.sdfTime.parse("2020-04-30 23:59:59"))) {
-			System.out.println(approvalInfo);
-		}
+		System.out.println(getApprovalDetailList(DateUtil.sdfTime.parse("2020-04-01 00:00:00"),
+				DateUtil.sdfTime.parse("2020-04-01 23:59:59")));
 	}
 }

+ 2 - 5
code/sapparent/sapservice/src/main/java/org/fouram/entity/SapApprovalInfo.java

@@ -18,9 +18,6 @@ public class SapApprovalInfo implements Serializable {
 	private static final long serialVersionUID = 1L;
 
 	private String userId;
-	private String starttime;
-	private String startDate;
-	private String endtime;
-	private String endDate;
-	private String spStatus;
+	private String time;
+	private String day;
 }

+ 18 - 18
code/sapparent/sapservice/src/main/resources/env/develop/config.properties

@@ -1,27 +1,27 @@
 env = develop
 
 #fouram
-wxCp.corpId = ww51602aeb8dab7a95
-wxCp.corpSecret = 0i1jzYxLcriGTXhoatAGYaCFUXshfASbavRScZQxVmI
-wxCp.massage.agentId = 1000003
-wxCp.massage.secret = Sf9mHYuIeAFyqvyoDnTXAH2hlly7kWq6LoIYGCuTZUM
-wxCp.massage.toUser = 1000001
-wxCp.massage.quitUserUrl = https://www.baidu.com
-wxCp.oa.agentId = 3010011
-wxCp.oa.secret = wSzjASahMpA7FoLEpQr_aRvoOY3DwES4Mnh57xGD0OY
-wxCp.oaApproval.agentId = 3010040
-wxCp.oaApproval.secret = E6Q2TzX39tkZngtyiECwKACM-wBUKVu-0juxG23yIXs
-#prod
-#wxCp.corpId = ww911e29458d3a46fd
-#wxCp.corpSecret = amUNgH2lo-szEYkLmClZN2jMYcDu0NnXIAtWfW729P4
-#wxCp.massage.agentId = 1000009
-#wxCp.massage.secret = a0HDbErBYZxL43yLIzTZ_9Q5q4eFf2EHSi67TWP1RbE
-#wxCp.massage.toUser = dd4d61108fecaa34918a555fd1d8cce1
+#wxCp.corpId = ww51602aeb8dab7a95
+#wxCp.corpSecret = 0i1jzYxLcriGTXhoatAGYaCFUXshfASbavRScZQxVmI
+#wxCp.massage.agentId = 1000003
+#wxCp.massage.secret = Sf9mHYuIeAFyqvyoDnTXAH2hlly7kWq6LoIYGCuTZUM
+#wxCp.massage.toUser = 1000001
 #wxCp.massage.quitUserUrl = https://www.baidu.com
 #wxCp.oa.agentId = 3010011
-#wxCp.oa.secret = iD6-Kv41i4S50bEZcwa9v-S7SYpD1Q7LbR3dQx5oM7s
+#wxCp.oa.secret = wSzjASahMpA7FoLEpQr_aRvoOY3DwES4Mnh57xGD0OY
 #wxCp.oaApproval.agentId = 3010040
-#wxCp.oaApproval.secret = -_Sf2jg42PZEQ1OVoLncimT6az4fRSMZH_3uoSxGHUk
+#wxCp.oaApproval.secret = E6Q2TzX39tkZngtyiECwKACM-wBUKVu-0juxG23yIXs
+#prod
+wxCp.corpId = ww911e29458d3a46fd
+wxCp.corpSecret = amUNgH2lo-szEYkLmClZN2jMYcDu0NnXIAtWfW729P4
+wxCp.massage.agentId = 1000009
+wxCp.massage.secret = a0HDbErBYZxL43yLIzTZ_9Q5q4eFf2EHSi67TWP1RbE
+wxCp.massage.toUser = dd4d61108fecaa34918a555fd1d8cce1
+wxCp.massage.quitUserUrl = https://www.baidu.com
+wxCp.oa.agentId = 3010011
+wxCp.oa.secret = iD6-Kv41i4S50bEZcwa9v-S7SYpD1Q7LbR3dQx5oM7s
+wxCp.oaApproval.agentId = 3010040
+wxCp.oaApproval.secret = -_Sf2jg42PZEQ1OVoLncisqTmASwQTmabDzqTz7kLfw
 
 wxCp.mailList.corpSecret = aI66cnVoFAd381rgd3NpyZaEP2qnuZJ2ogpZKWmz9qg
 wxCp.redirectUri = http://cmcadressbook.suggest.vip/sapcms