|
@@ -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);
|
|
@@ -210,19 +210,29 @@ public class SyncOAHelper {
|
|
|
dyn.set("nckd_oaid", oaId);
|
|
|
dynList.add(dyn);
|
|
|
}
|
|
|
- DynamicObject[] dynCols = dynList.stream().toArray(DynamicObject[]::new);
|
|
|
-
|
|
|
- HisVersionParamBo hisVersionParamBo = new HisVersionParamBo();
|
|
|
- hisVersionParamBo.setOperateType(EnumHisOperateType.NO_TIME_SAVE_VERSION.getType());
|
|
|
- hisVersionParamBo.setEntityNumber(PERFORMANCE_ENTITY);
|
|
|
- hisVersionParamBo.setHisDyns(dynCols);
|
|
|
- HisModelController hisModelController = HisModelController.getInstance();
|
|
|
- HisResponse<VersionChangeRespData> hisResponse = hisModelController.noLineTimeHisVersionChange(hisVersionParamBo);
|
|
|
-
|
|
|
- log.info("1");
|
|
|
+ log.info("共查询:{}条,去重后:{}条", datas.size(), dynList.size());
|
|
|
+ if(dynList.size() > 0) {
|
|
|
+ DynamicObject[] dynCols = dynList.stream().toArray(DynamicObject[]::new);
|
|
|
+ HisVersionParamBo hisVersionParamBo = new HisVersionParamBo();
|
|
|
+ hisVersionParamBo.setOperateType(EnumHisOperateType.NO_TIME_SAVE_VERSION.getType());
|
|
|
+ hisVersionParamBo.setEntityNumber(PERFORMANCE_ENTITY);
|
|
|
+ hisVersionParamBo.setHisDyns(dynCols);
|
|
|
+ HisModelController hisModelController = HisModelController.getInstance();
|
|
|
+ HisResponse<VersionChangeRespData> hisResponse = hisModelController.noLineTimeHisVersionChange(hisVersionParamBo);
|
|
|
+ log.info(hisResponse.toString());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- 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 +250,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 +278,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);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|