|
|
@@ -1,12 +1,17 @@
|
|
|
package nckd.jxccl.wtc.task;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
|
|
|
import com.hikvision.artemis.sdk.config.ArtemisConfig;
|
|
|
import kd.bos.context.RequestContext;
|
|
|
+import kd.bos.entity.param.CustomParam;
|
|
|
import kd.bos.exception.KDException;
|
|
|
import kd.bos.schedule.executor.AbstractTask;
|
|
|
+import kd.bos.servicehelper.parameter.SystemParamServiceHelper;
|
|
|
import kd.sdk.plugin.Plugin;
|
|
|
-import net.sf.json.JSONObject;
|
|
|
+import nckd.jxccl.wtc.utils.SyncPunchCardHelper;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.Calendar;
|
|
|
@@ -17,57 +22,71 @@ import java.util.Map;
|
|
|
* 后台任务插件
|
|
|
*/
|
|
|
public class SyncPunchCardTask extends AbstractTask implements Plugin {
|
|
|
- static {
|
|
|
- ArtemisConfig.host = "117.178.209.120:4433";// ����API����nginx������ip�˿�
|
|
|
- ArtemisConfig.appKey = "20297808";// "��Կappkey������Key��20332604
|
|
|
- ArtemisConfig.appSecret = "hGLlKSP6aZV0Ui32BVtb";// ��ԿappSecret������Secret��
|
|
|
- }
|
|
|
private static final String ARTEMIS_PATH = "/artemis";
|
|
|
static final String getCamsApi = ARTEMIS_PATH + "/api/acs/v2/door/events";
|
|
|
static Map<String, String> path = new HashMap<String, String>(2) {
|
|
|
{
|
|
|
- put("https://", getCamsApi);// �����ֳ���������ȷ����http����https
|
|
|
+ put("https://", getCamsApi);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+ public void initConfig() {
|
|
|
+ CustomParam customParam = new CustomParam();
|
|
|
+ customParam.getSearchKeySet().add("PUNCH_CARD_HOST");
|
|
|
+ customParam.getSearchKeySet().add("PUNCH_CARD_APP_KEY");
|
|
|
+ customParam.getSearchKeySet().add("PUNCH_CARD_APP_SECRET");
|
|
|
+ Map<String, String> cusTomMap = SystemParamServiceHelper.loadCustomParameterFromCache(customParam);
|
|
|
+ ArtemisConfig.host = cusTomMap.get("PUNCH_CARD_HOST");
|
|
|
+ ArtemisConfig.appKey = cusTomMap.get("PUNCH_CARD_APP_KEY");
|
|
|
+ ArtemisConfig.appSecret = cusTomMap.get("PUNCH_CARD_APP_SECRET");
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException {
|
|
|
- // dosysbyeventstoPunchCard();
|
|
|
+ try {
|
|
|
+ initConfig();
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ Calendar date = Calendar.getInstance();
|
|
|
+ System.out.println(sdf.format(date.getTime()));
|
|
|
+ String endTime = sdf.format(date.getTime()) + "T23:59:59+08:00";
|
|
|
+ Integer days = Integer.valueOf(map.get("days").toString());
|
|
|
+ date.set(Calendar.DATE, date.get(Calendar.DATE) - days);
|
|
|
+ System.out.println(sdf.format(date.getTime()));
|
|
|
+ String startTime = sdf.format(date.getTime()) + "T00:00:00+08:00";
|
|
|
+ getAllCards(startTime, endTime);
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-// public void dosysbyeventstoPunchCard() {
|
|
|
-// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
-// Calendar date = Calendar.getInstance();
|
|
|
-// System.out.println(sdf.format(date.getTime()));
|
|
|
-// String endTime = sdf.format(date.getTime()) + "T23:59:59+08:00";
|
|
|
-// date.set(Calendar.DATE, date.get(Calendar.DATE) - 7);
|
|
|
-// System.out.println(sdf.format(date.getTime()));
|
|
|
-// String startTime = sdf.format(date.getTime()) + "T00:00:00+08:00";
|
|
|
-// System.out.println("---------------------��ʼʱ�� " + startTime);
|
|
|
-// System.out.println("----------------------����ʱ�� " + endTime);
|
|
|
-// int nowpageNo = 1;
|
|
|
-// String firstjson = callGetCard(startTime, endTime, nowpageNo);
|
|
|
-// }
|
|
|
-//
|
|
|
-// public static String callGetCard(String startTime, String endTime, int pageNo) {
|
|
|
-// System.out.println("��ȡ��"+pageNo+"ҳ��¼------------");
|
|
|
-// JSONObject jsonBody = new JSONObject();
|
|
|
-// jsonBody.put("pageNo", pageNo);
|
|
|
-// jsonBody.put("pageSize", 10);
|
|
|
-// jsonBody.put("startTime", startTime);
|
|
|
-// jsonBody.put("endTime", endTime);
|
|
|
-// String body = jsonBody.toString();
|
|
|
-// System.out.println("��ȡ��"+pageNo+"�������------------"+body);
|
|
|
-// long time1=System.currentTimeMillis();
|
|
|
-// String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);// post����application/json���Ͳ���
|
|
|
-// System.out.println("���������ʱ---"+(System.currentTimeMillis()-time1)+"ms");
|
|
|
-// System.out.println("���ؽ��"+result);
|
|
|
-// return result;
|
|
|
-// }
|
|
|
-//
|
|
|
-// public static void main(String[] args) {
|
|
|
-// SyncPunchCardTask task = new SyncPunchCardTask();
|
|
|
-// task.execute(null, null);
|
|
|
-// }
|
|
|
+ public static void getAllCards(String startTime, String endTime) {
|
|
|
+ JSONObject firstPageJson = getOnePageCard(startTime, endTime, 1);
|
|
|
+ JSONArray firstPageListJson = firstPageJson.getJSONArray("list");
|
|
|
+ // 保存第一页
|
|
|
+ SyncPunchCardHelper.savePunchCardData(firstPageListJson);
|
|
|
+ Integer totalPage = firstPageJson.getInteger("totalPage");
|
|
|
+ if (totalPage <= 1) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 从第二页开始保存
|
|
|
+ for(int i=2; i<=totalPage; i++) {
|
|
|
+ JSONObject pageJson = getOnePageCard(startTime, endTime, i);
|
|
|
+ JSONArray pageListJson = pageJson.getJSONArray("list");
|
|
|
+ SyncPunchCardHelper.savePunchCardData(pageListJson);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public static JSONObject getOnePageCard(String startTime, String endTime, int pageNo) {
|
|
|
+ JSONObject jsonBody = new JSONObject();
|
|
|
+ jsonBody.put("pageNo", pageNo);
|
|
|
+ jsonBody.put("pageSize", 1000);
|
|
|
+ jsonBody.put("startTime", startTime);
|
|
|
+ jsonBody.put("endTime", endTime);
|
|
|
+ jsonBody.put("userId", "admin");
|
|
|
+ String body = jsonBody.toString();
|
|
|
+ String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, "application/json", null);
|
|
|
+ JSONObject jsonData = JSON.parseObject(result).getJSONObject("data");
|
|
|
+ return jsonData;
|
|
|
+ }
|
|
|
|
|
|
}
|