diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpOaService.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpOaService.java index 7eb986dbb..bbbcb6095 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpOaService.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpOaService.java @@ -10,7 +10,7 @@ import java.util.List; /** * 企业微信OA相关接口. * - * @author Element + * @author Element & Wang_Wong * @date 2019-04-06 10:52 */ public interface WxCpOaService { @@ -107,6 +107,7 @@ public interface WxCpOaService { */ WxCpApprovalInfo getApprovalInfo(@NonNull Date startTime, @NonNull Date endTime) throws WxErrorException; + /** *
    *   获取审批申请详情
@@ -122,6 +123,21 @@ public interface WxCpOaService {
    */
   WxCpApprovalDetailResult getApprovalDetail(@NonNull String spNo) throws WxErrorException;
 
+
+  /**
+   * 获取企业假期管理配置
+   * 企业可通过审批应用或自建应用Secret调用本接口,获取可见范围内员工的“假期管理”配置,包括:各个假期的id、名称、请假单位、时长计算方式、发放规则等。
+   * 第三方应用可获取应用可见范围内员工的“假期管理”配置,包括:各个假期的id、名称、请假单位、时长计算方式、发放规则等。
+   *
+   * 请求方式:GET(HTTPS)
+   * 请求地址:https://qyapi.weixin.qq.com/cgi-bin/oa/vacation/getcorpconf?access_token=ACCESS_TOKEN
+   *
+   * @return
+   * @throws WxErrorException
+   */
+  WxCpCorpConfInfo getCorpConf() throws WxErrorException;
+
+
   /**
    * 获取公费电话拨打记录
    *
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpService.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpService.java
index 529e6f06e..ddb3968c2 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpService.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpService.java
@@ -386,7 +386,7 @@ public interface WxCpService extends WxService {
   WxCpMessageService getMessageService();
 
   /**
-   * Gets oa service.
+   * 获取OA相关接口的服务类对象.
    *
    * @return the oa service
    */
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpOaAgentServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpOaAgentServiceImpl.java
index 9f3d3f167..5acdf0cf0 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpOaAgentServiceImpl.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpOaAgentServiceImpl.java
@@ -9,11 +9,9 @@ import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.common.util.json.GsonParser;
 import me.chanjar.weixin.cp.api.WxCpOaAgentService;
 import me.chanjar.weixin.cp.api.WxCpService;
-import me.chanjar.weixin.cp.bean.living.WxCpLivingInfo;
 import me.chanjar.weixin.cp.bean.oa.selfagent.WxCpOpenApprovalData;
 import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
 
-import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.Living.GET_USER_ALL_LIVINGID;
 import static me.chanjar.weixin.cp.constant.WxCpApiPathConsts.Oa.GET_OPEN_APPROVAL_DATA;
 
 /**
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpOaServiceImpl.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpOaServiceImpl.java
index 3e8277a85..afee242fe 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpOaServiceImpl.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpOaServiceImpl.java
@@ -165,6 +165,13 @@ public class WxCpOaServiceImpl implements WxCpOaService {
     return WxCpGsonBuilder.create().fromJson(responseContent, WxCpApprovalDetailResult.class);
   }
 
+  @Override
+  public WxCpCorpConfInfo getCorpConf() throws WxErrorException {
+    final String url = this.mainService.getWxCpConfigStorage().getApiUrl(GET_CORP_CONF);
+    String responseContent = this.mainService.get(url, null);
+    return WxCpCorpConfInfo.fromJson(responseContent);
+  }
+
   @Override
   public List getDialRecord(Date startTime, Date endTime, Integer offset, Integer limit)
     throws WxErrorException {
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/WxCpCorpConfInfo.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/WxCpCorpConfInfo.java
new file mode 100644
index 000000000..514cb421f
--- /dev/null
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/oa/WxCpCorpConfInfo.java
@@ -0,0 +1,74 @@
+package me.chanjar.weixin.cp.bean.oa;
+
+import com.google.gson.annotations.SerializedName;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import me.chanjar.weixin.cp.bean.WxCpBaseResp;
+import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 企业假期管理配置信息.
+ *
+ * @author Wang_Wong
+ */
+@Data
+public class WxCpCorpConfInfo extends WxCpBaseResp implements Serializable {
+  private static final long serialVersionUID = 7387181805254287157L;
+
+  @SerializedName("lists")
+  private List lists;
+
+  @Getter
+  @Setter
+  public static class CorpConf implements Serializable {
+    private static final long serialVersionUID = -5696099236344075582L;
+
+    @SerializedName("id")
+    private Integer id;
+
+    @SerializedName("name")
+    private String name;
+
+    @SerializedName("time_attr")
+    private Integer timeAttr;
+
+    @SerializedName("duration_type")
+    private Integer durationType;
+
+    @SerializedName("quota_attr")
+    private QuotaAttr quotaAttr;
+
+    @SerializedName("perday_duration")
+    private Integer perdayDuration;
+
+  }
+
+  @Getter
+  @Setter
+  public static class QuotaAttr implements Serializable {
+    private static final long serialVersionUID = -5696099236344075582L;
+
+    @SerializedName("type")
+    private Integer type;
+
+    @SerializedName("autoreset_time")
+    private Integer autoresetTime;
+
+    @SerializedName("autoreset_duration")
+    private Integer autoresetDuration;
+
+  }
+
+  public static WxCpCorpConfInfo fromJson(String json) {
+    return WxCpGsonBuilder.create().fromJson(json, WxCpCorpConfInfo.class);
+  }
+
+  public String toJson() {
+    return WxCpGsonBuilder.create().toJson(this);
+  }
+
+}
diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java
index e80a93263..b3773eeab 100644
--- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java
+++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/constant/WxCpApiPathConsts.java
@@ -112,6 +112,11 @@ public interface WxCpApiPathConsts {
     String APPLY_EVENT = "/cgi-bin/oa/applyevent";
     String GET_APPROVAL_INFO = "/cgi-bin/oa/getapprovalinfo";
     String GET_APPROVAL_DETAIL = "/cgi-bin/oa/getapprovaldetail";
+    String GET_APPROVAL_DATA = "/cgi-bin/oa/getapprovaldata";
+
+    String GET_CORP_CONF = "/cgi-bin/oa/vacation/getcorpconf";
+    String GET_USER_VACATION_QUOTA = "/cgi-bin/oa/vacation/getuservacationquota";
+    String SET_ONE_USER_QUOTA = "/cgi-bin/oa/vacation/setoneuserquota";
 
     /**
      * 公费电话
diff --git a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpOaServiceImplTest.java b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpOaServiceImplTest.java
index 4370bb3d8..d3f52561a 100644
--- a/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpOaServiceImplTest.java
+++ b/weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpOaServiceImplTest.java
@@ -1,15 +1,12 @@
 package me.chanjar.weixin.cp.api.impl;
 
 import com.google.gson.Gson;
-import com.google.gson.JsonObject;
-import com.google.gson.reflect.TypeToken;
 import com.google.inject.Inject;
+import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.common.error.WxErrorException;
-import me.chanjar.weixin.common.util.json.GsonParser;
 import me.chanjar.weixin.cp.api.ApiTestModule;
 import me.chanjar.weixin.cp.api.WxCpService;
 import me.chanjar.weixin.cp.bean.oa.*;
-import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
 import org.apache.commons.lang3.time.DateFormatUtils;
 import org.testng.annotations.Guice;
 import org.testng.annotations.Test;
@@ -25,9 +22,9 @@ import static org.assertj.core.api.Assertions.assertThat;
 /**
  * 企业微信 OA数据接口 测试用例
  *
- * @author Element
+ * @author Element & Wang_Wong
  */
-
+@Slf4j
 @Guice(modules = ApiTestModule.class)
 public class WxCpOaServiceImplTest {
 
@@ -171,4 +168,15 @@ public class WxCpOaServiceImplTest {
   @Test
   public void testGetDialRecord() {
   }
+
+  /**
+   * https://developer.work.weixin.qq.com/document/path/93375
+   * @throws WxErrorException
+   */
+  @Test
+  public void testGetCorpConf() throws WxErrorException{
+    WxCpCorpConfInfo corpConf = this.wxService.getOaService().getCorpConf();
+    log.info(corpConf.toJson());
+  }
+
 }