package com.example.zxweb.utils; import com.alibaba.fastjson.JSONObject; import com.example.zxweb.common.constant.enums.RmsApiEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; /** * @Description 访客机工具类 * @Author ZhouWenTao * @Date 2023/9/8 13:18 */ @Component @Slf4j public class RmsUtils { private static String TOKEN; private static JSONObject header=new JSONObject(); private static String API_PREFIX="https://10.0.10.153:2443"; static { //请求头 header=new JSONObject(); header.put("Content-Type","application/json"); header.put("appCode","42142fd0jkbf4515853b7fcec64748f6"); /*//header.put("devid","68EDA45C54F3"); //header.put("devid","68EDA444D9DG"); //68EDA444DODG //获取TOKEN getToken(); header.put("token",TOKEN);*/ } public static void getToken() { JSONObject requestBody = JSONObject.parseObject("{\"email\":\"admin\", \"pswd\":\"cf79ae6addba60ad018347359bd144d2\"}"); JSONObject responseBody = RestUtil.post(API_PREFIX+RmsApiEnum.getApiByText("系统登陆"), requestBody, header); log.error(responseBody.toJSONString()); AssertUtils.notNull(responseBody,"获取TOKEN失败"); String code = responseBody.getString("code"); String msg = responseBody.getString("msg"); AssertUtils.isTrue("0".equals(code),"获取TOKEN出错:"+msg); JSONObject content = responseBody.getJSONObject("content"); TOKEN = content.getString("token"); header.put("token",TOKEN); } /** * 访客查询 * 本接口用于访客信息查询,查询出访客登记的所有信息,建议查询条件为当天时间+状态查询,不易跨月,多天的频繁调用,对服务压力大,查询结果为倒序排序。 * @param requestBody {"starttime":"2022-11-09","status":"0","num":1,"pageNum":1,"endtime":"2022-11-09"} * @return {"code":0,"msg":"成功","pagecount":2,"pageNum":1,"content":[{"id":85,"rcode":"1486300085","parentid":null,"vid":88,"visitor":{"id":88,"name":"王麻子","sex":"男","nation":"汉","birthday":null,"idnum":"a543546aef4bdd46ac957554f3c4f8cd222498dd2c2d56d1a9e5939469930619","idnumAdd":"123456123456","idnumCipher":"04e08e6ebddced2dd94b588e039096a2111f8be98f9eb79e365a3443c697d699ac9f08b892821e2b3b4e22b54203084b4e111329918b810c2fc480637c830e2fe909a7b4e75c18c91da3a163441ea36123ca105526b68c11e570e6869bc4c6121825f116905de9107c1d7832b7","photo":null,"sitePhoto":null,"issuing":null,"validitydatestart":null,"validitydateend":null,"phone":"84537d95e88ce687e4efab251a746c7318dbe7cc2f6cecbb0840ce4889e7a2a5","phoneAdd":"13900074111","phoneCipher":"04d176b602a7ad1c6b9784adc7adef54e90c7e771f04aba9ca66c3cf3abfa0cc6163203fb4c1017381a7ccc6a396150af3070efa193cfc22d128294bc58a52705077cbba29dc322072e95815d5ed19e92ee7b2f2c0470e4e15ae0eb15fa8540df61b07dfd4a1256955bbd019","startTime":null,"endTime":null,"pinYin":"wmz","syncId":null,"companyCode":null,"isbindfinger":0,"isbindface":0,"wltPhoto":null,"tabTime":null,"uploadTime":null,"isVip":0,"sheetSize":null,"idphoto":null},"uid":20653,"user":{"id":20653,"nickname":"张三","userpinyin":null,"email":"abc10110","pswd":null,"terminalpswd":null,"createTime":null,"lastLoginTime":null,"status":1,"sex":1,"nation":null,"nations":null,"birthday":null,"address":null,"idNum":"1304331989111111","photo":"\\image\\idpic\\1304331989111111_20221108143849677.png","issuing":null,"validityDateStart":null,"validityDateEnd":null,"phone":"13931021490","dep":null,"depID":1049,"depSyncId":null,"depName":null,"telephone":"010123456","ecardNum":"12345678","ecardEndTime":"2042-11-30 00:00:00","pinYin":null,"syncId":"abc10110","companyNum":null,"sta":null,"imIP":null,"imTime":null,"entranceGuards":null,"isbindface":null,"visitable":null,"tabTime":null,"uploadTime":null,"idphoto":null,"plateNo":null,"plateTime":null,"plateIssue":null},"dept":{"id":1049,"value":"子级部门1","pinyin":"zjbm1","parentId":null,"syncId":"abc123","syncParentId":null,"companyNum":null,"sta":null,"visitable":null,"sortnum":null,"tabTime":null,"uploadTime":null},"createtime":"2022-11-09 13:44:46","starttime":"2022-11-09 13:44:00","endtime":"2022-11-09 23:59:00","logofftime":null,"status":0,"reasons":"访问","unit":"公司名称","num":1,"type":0,"isprintvoucher":0,"ispullcard":1,"cardtype":0,"cardnum":"1234512345","sitephoto":null,"headphoto":null,"vCar":{"id":180,"cardnum":"京A99999","cardcolor":null,"num":null,"arid":85,"companyCode":null,"tabTime":null,"uploadTime":null},"drList":[],"trList":[],"isUpload":0,"pageNum":null,"yyID":null,"companyCode":"000000","terminalCode":"1000002","terminalManagerId":1038,"zhuxiaoManagerId":null,"tabTime":"2022-11-09 13:44:46","uploadTime":null,"syncId":null,"tiwen":35.0,"terminalManagerName":null,"zhuxiaoManagerName":null,"zhuxiaoTerminalCode":null,"channels":"","comment":"","xckStatus":0,"xckvisitedArea":null,"xckPhone":null,"xckUpdateTime":null,"xckPhoto":null,"jkbPhoto":null,"healthStatus":null,"lastRNATime":null,"lastRNAResult":null,"travelStatus":null,"tel":null,"vcar":{"id":180,"cardnum":"京A99999","cardcolor":null,"num":null,"arid":85,"companyCode":null,"tabTime":null,"uploadTime":null}}],"success":true} */ public static JSONObject fkterminalFindAccessRecord(JSONObject requestBody){ String devid = requestBody.getString("devid"); header.put("devid",devid); String starttime = requestBody.getString("starttime");//开始时间* String status = requestBody.getString("status");//状态:-1超时未注销、0登记中、1已注销3预约 String pageNum = requestBody.getString("pageNum");//页数 String num = requestBody.getString("num");//查询条数 String endtime = requestBody.getString("endtime");//结束时间* AssertUtils.notEmpty(starttime,"请输入开始时间-[starttime]"); AssertUtils.notEmpty(endtime,"请输入结束时间-[endtime]"); JSONObject responseBody = RestUtil.post(API_PREFIX+RmsApiEnum.getApiByText("访客查询"), requestBody, header); log.error(responseBody.toJSONString()); AssertUtils.notNull(responseBody,"请求失败"); //Integer code = responseBody.getInteger("code"); //AssertUtils.isTrue(0==code,"请求异常:"+responseBody.getString("msg")); return responseBody; } /** * 访客预约 * @param requestBody {"reason":"拜访","synId":"abc10110","visitorBeginTime":"2022-11-08 10:00:00","visitorEndTime":"2022-11-08 18:00:00","visitorCmp":"访客部","visitorIdNum":"1234567890123","visitorName":"访客","visitorPhone":"1300000000"} * @return {"code":0,"msg":"预约成功","pagecount":null,"pageNum":null,"content":null,"success":true} */ public static JSONObject syncOrderrecord(JSONObject requestBody){ getToken(); String devid = requestBody.getString("devid"); System.out.println(header.toJSONString()); header.put("devid",devid); String reason = requestBody.getString("reason");//状态 String synId = requestBody.getString("synId");//被访人ID* String visitorBeginTime = requestBody.getString("visitorBeginTime");//来访时间 yyyy-MM-dd HH:mm:ss yyyy* String visitorEndTime = requestBody.getString("visitorEndTime");//结束时间 yyyy-MM-dd HH:mm:ss* String visitorCmp = requestBody.getString("visitorCmp");//访客单位 String visitorIdNum = requestBody.getString("visitorIdNum");//访客证件号码* String visitorName = requestBody.getString("visitorName");//访客姓名* String visitorPhone = requestBody.getString("visitorPhone");//访客手机号 AssertUtils.notEmpty(synId,"请输入被访客ID-[synId]"); AssertUtils.notEmpty(visitorBeginTime,"请输入来访时间-[visitorBeginTime]"); AssertUtils.notEmpty(visitorEndTime,"请输入结束时间-[visitorEndTime]"); AssertUtils.notEmpty(visitorIdNum,"请输入访客证件号-[visitorIdNum]"); AssertUtils.notEmpty(visitorName,"请输入访客姓名-[visitorName]"); JSONObject responseBody = RestUtil.post(API_PREFIX+RmsApiEnum.getApiByText("访客预约"), requestBody, header); log.error(responseBody.toJSONString()); AssertUtils.notNull(responseBody,"请求接口异常"); //Integer code = responseBody.getInteger("code"); //AssertUtils.isTrue(code==0,"请求访客预约接口异常:"+requestBody.getOrDefault("msg","")); return responseBody; } /** * 访客注销 * 本接口用于主动调用访客系统注销,针对于发卡用户使用,比如:访客登记发放门禁卡,出门注销时可调用此接口 * @param requestBody {"cardNum":"1234567888"} * @return {"code":0,"msg":"成功","pagecount":null,"pageNum":null,"content":null,"success":true} */ public static JSONObject fkterminalRecoverCard(JSONObject requestBody) { getToken(); System.out.println(header.toJSONString()); String devid = requestBody.getString("devid"); header.put("devid",devid); String cardNum = requestBody.getString("cardNum"); AssertUtils.notEmpty(cardNum,"清输入访客证件号-[cardNum]"); JSONObject responseBody = RestUtil.post(API_PREFIX+RmsApiEnum.getApiByText("访客注销"), requestBody, header); log.error(responseBody.toJSONString()); AssertUtils.notNull(responseBody,"请求失败"); //Integer code = responseBody.getInteger("code"); //AssertUtils.isTrue(0==code,"请求异常:"+responseBody.getString("msg")); return responseBody; } }