Tyx преди 2 дни
родител
ревизия
63c2d2ff59

+ 1 - 1
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/task/SyncPerformanceOATask.java

@@ -20,6 +20,6 @@ public class SyncPerformanceOATask extends AbstractTask implements Plugin {
     @Override
     public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
         log.info("-------- 开始同步OA绩效数据 --------");
-        SyncOAHelper.syncPerformanceData();
+        SyncOAHelper.syncPerformanceData(map);
     }
 }

+ 56 - 9
code/jyyy/nckd-jimin-jyyy-hr/src/main/java/nckd/jimin/jyyy/hr/task/util/SyncOAHelper.java

@@ -30,12 +30,12 @@ public class SyncOAHelper {
     private static final String PERSON_ENTITY = "hrpi_person";
     public static final String PERFORMANCE_ENTITY = "nckd_hrpi_performan";
 
-    public static Map<String, String> syncPerformanceData() {
+    public static Map<String, String> syncPerformanceData(Map<String, Object> map) {
         Map<String, String> result = new HashMap<>();
-        Map<String, String> mapentity = CommonHelperUtils.getCommonParams("OA-Test");
+        Map<String, String> mapentity = CommonHelperUtils.getCommonParams("OA-Performance");
         String code = getCode(mapentity);
         String accessToken = getToken(mapentity, code);
-        JSONArray totalJSONArray = getData(mapentity, accessToken);
+        JSONArray totalJSONArray = getData(mapentity, accessToken, map);
         dealPerformanceData(totalJSONArray);
         return result;
     }
@@ -119,7 +119,7 @@ public class SyncOAHelper {
         return token;
     }
 
-    public static JSONArray getData (Map<String, String> mapentity, String token) {
+    public static JSONArray getData (Map<String, String> mapentity, String token, Map<String, Object> map) {
         try {
             String post_getperformance_url = mapentity.get("getperformance");
             String param_secretkey = mapentity.get("secret_key");
@@ -139,7 +139,7 @@ public class SyncOAHelper {
             int pageNo = 1;
             int pageSize = 200;
             while(status) {
-                String response = getPerformanceData(performanceUrl, param_operator, header, pageNo, pageSize);
+                String response = getPerformanceData(performanceUrl, param_operator, header, pageNo, pageSize, map, mapentity);
                 JSONObject responseData = JSONObject.parseObject(response);
                 JSONObject dataJson = responseData.getJSONObject("datajson");
                 JSONArray datas = dataJson.getJSONArray("datas");
@@ -156,8 +156,8 @@ public class SyncOAHelper {
         }
     }
 
-    public static String getPerformanceData (StringBuilder performanceUrl, String operator, Map<String, String> header, int pageNo, int pageSize) throws IOException {
-        String param = getPerformanceBody(operator, pageNo, pageSize);
+    public static String getPerformanceData (StringBuilder performanceUrl, String operator, Map<String, String> header, int pageNo, int pageSize, Map<String, Object> map, Map<String, String> mapentity) throws IOException {
+        String param = getPerformanceBody(operator, pageNo, pageSize, map, mapentity);
         log.info("请求OA 接口:" + performanceUrl.toString());
         log.info("请求OA data:" + param);
         String response = KHttpClientUtils.postjson(performanceUrl.toString(), header, param);
@@ -222,7 +222,16 @@ public class SyncOAHelper {
         log.info("1");
     }
 
-    public static String getPerformanceBody(String operator, int pageNo, int pageSize)
+    /**
+     *
+     * @param operator
+     * @param pageNo
+     * @param pageSize
+     * @param param     调度作业上的参数
+     * @param mapentity commonparam里的参数
+     * @return
+     */
+    public static String getPerformanceBody(String operator, int pageNo, int pageSize, Map<String, Object> param, Map<String, String> mapentity)
     {
         // 构建 requestHead 对象
         JSONObject requestHead = new JSONObject();
@@ -240,7 +249,9 @@ public class SyncOAHelper {
         // 构建 datajson 对象
         JSONObject datajsonParent = new JSONObject();
         JSONObject datajson = new JSONObject();
-        datajson.put("mainTable", new JSONObject()); // mainTable 是一个空对象
+        JSONObject mainTable = new JSONObject();
+        getMainTable(mainTable, param, mapentity);
+        datajson.put("mainTable", mainTable);
         datajson.put("pageInfo", pageInfo);
         datajson.put("header", header);
         datajsonParent.put("datajson", datajson);
@@ -266,6 +277,42 @@ public class SyncOAHelper {
         return rootJson.toString();
     }
 
+    public static void getMainTable(JSONObject mainTable, Map<String, Object> param, Map<String, String> mapentity) {
+        //获取是年度还是季度
+        String typeStr = param.get("type").toString();
+        String typeId = mapentity.get(typeStr + "_type");
+        mainTable.put("pgzq", typeId);
+
+        String year = "";
+        String zq = "";
+        String zqId = "";
+        boolean isAuto = Boolean.valueOf(param.get("isAuto").toString());
+        //如果isAuto = true:year = 当前日期上月所在年份,zq = 当前日期上月 或者 当前日期上月所在季度
+        if(isAuto) {
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(new Date());
+            calendar.set(Calendar.DAY_OF_MONTH, 1);
+            calendar.add(Calendar.DAY_OF_MONTH, -1);
+            year = String.valueOf(calendar.get(Calendar.YEAR));
+            if(typeStr.equals("month")) {
+                zq = String.valueOf(calendar.get(Calendar.MONTH) + 1);
+            }
+            else if (typeStr.equals("season")) {
+                int month = calendar.get(Calendar.MONTH);
+                int quarter = (month / 3) + 1;
+                zq = String.valueOf(quarter);
+            }
+            zqId = mapentity.get(typeStr + zq);
+        }
+        //如果isAuto = false; year和zq都取调度作业上参数值
+        else {
+            year = param.get("year").toString();
+            zq = typeStr + param.get("zq").toString();
+            zqId = mapentity.get(zq);
+        }
+        mainTable.put("nf", year);
+        mainTable.put("zq", zqId);
+    }
 
 
 }