From cffd87559f2e9343ce3e5dcc5d2953272a244253 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期二, 24 十二月 2024 18:41:05 +0800 Subject: [PATCH] 2024-12-24 --- src/main/java/com/example/service/shanxiqin/xian/MeiJiHisService.java | 305 +++++++++++++++++++++++++++++++++++++------------- 1 files changed, 226 insertions(+), 79 deletions(-) diff --git a/src/main/java/com/example/service/shanxiqin/xian/MeiJiHisService.java b/src/main/java/com/example/service/shanxiqin/xian/MeiJiHisService.java index 44176ac..e6a6b43 100644 --- a/src/main/java/com/example/service/shanxiqin/xian/MeiJiHisService.java +++ b/src/main/java/com/example/service/shanxiqin/xian/MeiJiHisService.java @@ -1,23 +1,30 @@ package com.example.service.shanxiqin.xian; -import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSON; +import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.example.config.ConfigValue; import com.example.constant.ApiParamsConstants; +import com.example.domain.HisSyncDict; +import com.example.domain.TjFlowingWaterHis; import com.example.service.HisService; -import com.example.service.ISysConfigService; +import com.example.service.HisSyncDictService; +import com.example.service.TjFlowingWaterHisService; +import com.example.utils.AjaxResult; import com.example.utils.FieldNameConverter; import com.example.utils.HttpClientUtils; +import com.example.utils.synczd.DictionaryUtilShanXiXiAnMeiJiYy; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import java.time.Instant; -import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.TimeUnit; @@ -26,31 +33,37 @@ * @Author: zhaowenxuan * @Date: 2024/12/17 17:17 */ +@Slf4j @Service("ShanXiQinXiAnMeiJi") public class MeiJiHisService implements HisService { -// http://oapi.pbkwyy.com/OAPI/oauth/token + @Autowired + private DictionaryUtilShanXiXiAnMeiJiYy syncZd; + @Autowired + private ConfigValue configValue; + +// http://oapi.xamjyy.com/OAPI/oauth/token // grant_type:client_credentials // client_id:XFZZQEfXTZ7exhhi // client_secret:05a192176c21edfcc9cf5fa26fc5a9e0c5b131ad -// http://oapi.pbkwyy.com/OAPI +// http://oapi.xamjyy.com/OAPI @Autowired public MeiJiHisService(ApplicationContext applicationContext, ConfigValue configValue) { this.applicationContext = applicationContext; this.configValue = configValue; - HIS_URL = configValue.getConfigValue("his_api_url") + ":" + configValue.getConfigValue("his_api_port") + configValue.getConfigValue("hisapiappend"); + HIS_URL = configValue.getConfigValue("ShanXi_Qin_XiAn_MeiJi.his_api_url") + ":" + configValue.getConfigValue("ShanXi_Qin_XiAn_MeiJi.his_api_port") + configValue.getConfigValue("ShanXi_Qin_XiAn_MeiJi.hisapiappend"); + TJ_URL = configValue.getConfigValue("ShanXi_Qin_XiAn_MeiJi.tjUrl"); + CZY = configValue.getConfigValue("ShanXi_Qin_XiAn_MeiJi.czy"); } - - @Autowired - private ISysConfigService configService; @Autowired private RedisTemplate<Object ,Object> redisTemplate; - private ConfigValue configValue; private final ApplicationContext applicationContext; private final String HIS_URL; + private final String TJ_URL; + private final String CZY; //鑾峰彇token private JSONObject getToken () { @@ -63,19 +76,19 @@ map.put("client_id", CLIENT_ID); map.put("client_secret", CLIENT_SECRET); // map.put("scope",SCOP); - String post = sendPostTokenFormUrlencoded (HIS_URL+"/oauth/token", map); +// String post = sendPostTokenFormUrlencoded (HIS_URL+"/oauth/token", map); + String post = HttpClientUtils.sendPostTokenFormUrlencoded(HIS_URL + "/oauth/token", map, null); if (StrUtil.isBlank(post)) return null; return JSONUtil.parseObj(post); } @Override public String jianDang(Map<String, Object> params) { - String czy = configService.selectConfigByKey("dfhisczybm"); Map<String, Object> map = new HashMap<> (); map.put ("jiuZhenKh", params.get(ApiParamsConstants.CARD_ID)); map.put ("kaiLeiXing","4"); map.put ("xingMing", params.get(ApiParamsConstants.CUS_NAME)); - long cusSex = Long.parseLong(map.get(ApiParamsConstants.CUS_SEX).toString()); + long cusSex = Long.parseLong(params.get(ApiParamsConstants.CUS_SEX).toString()); if(cusSex==0L){ map.put ("xingBie","鐢�"); }else if(cusSex==1L){ @@ -83,15 +96,15 @@ }else { map.put ("xingBie","鏈煡"); } - map.put ("shenFenZh", ApiParamsConstants.CUS_ID_CARD); - map.put ("danWeiBh",""); - map.put ("chuShengRq", DateUtil.format((LocalDateTime) map.get(ApiParamsConstants.CUS_BRITHDAY),"yyyy-MM-dd")); - map.put ("lianXiDz", map.get(ApiParamsConstants.CUS_ADDR)); - map.put ("lianXiDh", map.get(ApiParamsConstants.CUS_PHONE)); + map.put ("shenFenZh", params.get(ApiParamsConstants.CUS_ID_CARD)); + map.put ("danWeiBh",params.get(ApiParamsConstants.COMP_ID)); + map.put ("chuShengRq", params.get(ApiParamsConstants.CUS_BRITHDAY)); + map.put ("lianXiDz", params.get(ApiParamsConstants.CUS_ADDR)); + map.put ("lianXiDh", params.get(ApiParamsConstants.CUS_PHONE)); map.put ("feiYongLb",""); map.put ("feiYongXz",""); map.put ("jiLuLy","3"); - map.put ("caoZuoYuan",czy); + map.put ("caoZuoYuan",CZY); map.put ("chongZhiJe",""); map.put ("yiBaoKh",""); map.put ("geRenBh",""); @@ -104,28 +117,38 @@ map.put ("minZuDm",""); map.put ("minZuMc",""); // 鑱屼笟缂栫爜 - return sendPostTokenFormData(HIS_URL+"/menZhenJz/jianDang", map); + String post = sendPost(HIS_URL + "/menZhenJz/jianDang", map); + JSONObject jsonObject = JSONUtil.parseObj(post); + if (jsonObject.getStr("returnCode").equals("1")) { + JSONObject obj = JSONUtil.createObj(); + obj.putOpt("code","200"); + obj.putOpt("data",jsonObject.getJSONObject("returnData")); + return JSONUtil.toJsonStr(obj); + }else { + JSONObject obj = JSONUtil.createObj(); + obj.putOpt("code","500"); + return JSONUtil.toJsonStr(obj); + } } @Override public String getBingRenXxByShengFenZheng(Map<String, Object> params) { - String czy = configService.selectConfigByKey("dfhisczybm"); Map<String, Object> map = new HashMap<> (); - map.put ("caoZuoYuan",czy); + map.put ("caoZuoYuan",CZY); map.put ("shenFenZh", params.get(ApiParamsConstants.CUS_ID_CARD)); - map.put ("danWeiBh",""); + map.put ("danWeiBh",params.get(ApiParamsConstants.COMP_ID)); //鑱屼笟缂栫爜 - return sendPostTokenFormData(HIS_URL+"/menZhenJz/getBingRenXxByShengFenZheng", map); + return sendPostTokenFormUrlencoded(HIS_URL+"/menZhenJz/getBingRenXxByShengFenZheng", map); } @Override public String saveBingRenXx(Map<String, Object> params) { - String czy = configService.selectConfigByKey("dfhisczybm"); Map<String, Object> map = new HashMap<> (); - map.put ("jiuZhenKh", params.get(ApiParamsConstants.PATIONID)); + map.put ("bingRenId", params.get(ApiParamsConstants.PATIONID)); map.put ("kaiLeiXing","4"); + map.put("jiuZhenKh",params.get(ApiParamsConstants.CARD_ID)); map.put ("xingMing", params.get(ApiParamsConstants.CUS_NAME)); - long cusSex = Long.parseLong(map.get(ApiParamsConstants.CUS_SEX).toString()); + long cusSex = Long.parseLong(params.get(ApiParamsConstants.CUS_SEX).toString()); if(cusSex==0L){ map.put ("xingBie","鐢�"); }else if(cusSex==1L){ @@ -135,15 +158,15 @@ } map.put ("shenFenZh", params.get(ApiParamsConstants.CUS_ID_CARD)); map.put ("danWeiBh",""); - map.put ("chuShengRq", DateUtil.format((LocalDateTime) params.get(ApiParamsConstants.CUS_BRITHDAY),"yyyy-MM-dd")); + map.put ("chuShengRq", params.get(ApiParamsConstants.CUS_BRITHDAY)); map.put ("lianXiDz", params.get(ApiParamsConstants.CUS_ADDR)); map.put ("lianXiDh", params.get(ApiParamsConstants.CUS_PHONE)); map.put ("feiYongLb",""); map.put ("feiYongXz",""); map.put ("jiLuLy","3"); - map.put ("caoZuoYuan",czy); + map.put ("caoZuoYuan",CZY); //鑱屼笟缂栫爜 - return sendPostTokenFormData(HIS_URL+"/menZhenJz/saveBingRenXx", map); + return sendPost(HIS_URL+"/menZhenJz/saveBingRenXx", map); } @Override @@ -151,26 +174,58 @@ Map<String, Object> map = new HashMap<> (); map.put ("bingRenId",params.get(ApiParamsConstants.PATIONID)); map.put ("jiuZhenKh",params.get(ApiParamsConstants.CARD_ID)); - map.put ("yuanQuId",params.get(ApiParamsConstants.YUANQU_ID)); + map.put ("yuanQuId","1"); //鑱屼笟缂栫爜 - return sendPostTokenFormData(HIS_URL+"/shouFei/getListDaiShouFei", map); + String post = sendPost(HIS_URL + "/shouFei/getListDaiShouFei", map); + JSONObject jsonObject = JSONUtil.parseObj(post); + if (jsonObject.getStr("returnCode").equals("1")) { + JSONObject data = jsonObject.getJSONObject("returnData"); + JSONArray list = data.getJSONArray("dtoMzFeiyong1List"); + JSONArray list1 = data.getJSONArray("dtoMzFeiYong2List"); + JSONObject result = JSONUtil.createObj(); + result.putOpt("list1",list); + result.putOpt("list2",list1); + return AjaxResult.success(result); + }else { + return AjaxResult.error(post); + } } @Override public String createMenZhenFy(Map<String, Object> params) { - String czy = configService.selectConfigByKey("dfhisczybm"); Map<String, Object> map = new HashMap<> (); map.put ("bingRenId",params.get(ApiParamsConstants.PATIONID)); map.put ("jiuZhenKh",params.get(ApiParamsConstants.CARD_ID)); - map.put ("caoZuoYuan",czy); - map.put ("yuanQuId",params.get(ApiParamsConstants.YUANQU_ID)); + map.put ("caoZuoYuan",CZY); + map.put ("yuanQuId","1"); map.put ("yingYongId","870101"); map.put ("kaiDanKs",params.get(ApiParamsConstants.kaiDanKeShi)); - map.put ("dengJiLsh",params.get(ApiParamsConstants.CARD_ID)); + map.put ("dengJiLsh",params.get(ApiParamsConstants.Tj_NUM)); map.put ("shouTuiBz",params.get(ApiParamsConstants.SHOU_TUI_STATUS)); map.put ("feiYongMxList",params.get(ApiParamsConstants.FEI_YONG_INFO_LIST)); //鑱屼笟缂栫爜 - return sendPostTokenFormData(HIS_URL+"/shouFei/createMenZhenFy", map); + String post = sendPost(HIS_URL + "/shouFei/createMenZhenFy", map); + JSONObject jsonObject = JSONUtil.parseObj(post); + if (jsonObject.getInt("returnCode") != 1) return AjaxResult.error(post); + JSONObject data = jsonObject.getJSONObject("returnData"); + JSONObject result = JSONUtil.createObj(); + result.putOpt(ApiParamsConstants.PATIONID,data.getStr(ApiParamsConstants.PATIONID)); + result.putOpt(ApiParamsConstants.FEI_YONG_ID,data.getStr(ApiParamsConstants.FEI_YONG_ID)); + + JSONArray feiYongMxList = data.getJSONArray("feiYongMxList"); + + ArrayList<TjFlowingWaterHis> tjFlowingWaterHis = new ArrayList<>(); + for (Object o : feiYongMxList) { + JSONObject entries = (JSONObject) o; + TjFlowingWaterHis waterHis = new TjFlowingWaterHis(); + waterHis.setId(IdUtil.getSnowflakeNextId()); + waterHis.setParentId(data.getStr(ApiParamsConstants.FEI_YONG_ID)); + waterHis.setCurrentId(entries.getStr("feiYongMxId")); + waterHis.setXmId(entries.getStr("xiangMuId")); + tjFlowingWaterHis.add(waterHis); + } + result.putOpt("mxList",tjFlowingWaterHis); + return AjaxResult.success(result); } @Override @@ -188,39 +243,34 @@ }); map.put ("feiYongIdList",ids); //鑱屼笟缂栫爜 - return sendPostTokenFormData(HIS_URL+"/shouFei/cheXiaoMzFy", map); - } - - @Override - public String pushZhiFuMsg(Map<String, Object> params) { - Map<String, Object> map = new HashMap<> (); - map.put ("feiYongId",params.get(ApiParamsConstants.FEI_YONG_ID)); - map.put ("yeWuLx",params.get(ApiParamsConstants.FEI_YONG_STATUS)); - //鑱屼笟缂栫爜 - return sendPostTokenFormData(HIS_URL+"/shouFei/pushZhiFuMsg", map); + String post = sendPost(HIS_URL + "/shouFei/cheXiaoMzFy", map); + JSONObject entries = JSONUtil.parseObj(post); + if (entries.getStr("returnCode").equals("1")) + return AjaxResult.success(); + else return AjaxResult.error(post); } @Override public String getKeShi(Map<String, Object> params) { Map<String, Object> map = new HashMap<> (); - map.put ("yuanQuId",params.get(ApiParamsConstants.YUANQU_ID)); + map.put ("yuanQuId","1"); map.put ("keShiMc",params.get(ApiParamsConstants.DEPT_NAME)); map.put ("pageIndex",params.get(ApiParamsConstants.PAGE_INDEX)); map.put ("pageSize",params.get(ApiParamsConstants.PAGE_SIZE)); //鑱屼笟缂栫爜 - return sendPostTokenFormData(HIS_URL+"/zhuShuJu/getKeShi", map); + return sendPost(HIS_URL+"/zhuShuJu/getKeShi", map); } @Override public String getListYiShengZd(Map<String, Object> params) { Map<String, Object> map = new HashMap<> (); - map.put ("yuanQuId",params.get(ApiParamsConstants.YUANQU_ID)); + map.put ("yuanQuId","1"); map.put ("keShiMc",params.get(ApiParamsConstants.DEPT_NAME)); map.put ("bianGengSj",""); map.put ("pageIndex",params.get(ApiParamsConstants.PAGE_INDEX)); map.put ("pageSize",params.get(ApiParamsConstants.PAGE_SIZE)); //鑱屼笟缂栫爜 - return sendPostTokenFormData(HIS_URL+"/zhuShuJu/getListYiShengZd", map); + return sendPost(HIS_URL+"/zhuShuJu/getListYiShengZd", map); } @Override @@ -231,7 +281,7 @@ map.put ("pageIndex",params.get(ApiParamsConstants.PAGE_INDEX)); map.put ("pageSize",params.get(ApiParamsConstants.PAGE_SIZE)); //鑱屼笟缂栫爜 - return sendPostTokenFormData(HIS_URL+"/zhuShuJu/getShouFeiXm", map); + return sendPost(HIS_URL+"/zhuShuJu/getShouFeiXm", map); } @Override @@ -240,11 +290,11 @@ map.put ("xingZhiSx",""); map.put ("queryString",params.get(ApiParamsConstants.COMMON_QUERY_KEY)); map.put ("zuoFeiBz",params.get(ApiParamsConstants.DEPT_ZUOFEI_STATUS)); - map.put ("yuanQuId",params.get(ApiParamsConstants.YUANQU_ID)); + map.put ("yuanQuId","1"); map.put ("keShiIds",params.get(ApiParamsConstants.DEPT_IDS)); map.put ("ifPlus",""); //鑱屼笟缂栫爜 - return sendPostTokenFormData(HIS_URL+"/zhuShuJu/getKeShiByConditions", map); + return sendPost(HIS_URL+"/zhuShuJu/getKeShiByConditions", map); } @Override @@ -254,7 +304,7 @@ map.put ("pageIndex",params.get(ApiParamsConstants.PAGE_INDEX)); map.put ("pageSize",params.get(ApiParamsConstants.PAGE_SIZE)); //鑱屼笟缂栫爜 - return sendPostTokenFormData(HIS_URL+"/zhuShuJu/getYangBen", map); + return sendPost(HIS_URL+"/zhuShuJu/getYangBen", map); } @Override @@ -265,7 +315,7 @@ map.put ("pageIndex",params.get(ApiParamsConstants.PAGE_INDEX)); map.put ("pageSize",params.get(ApiParamsConstants.PAGE_SIZE)); //鑱屼笟缂栫爜 - return sendPostTokenFormData(HIS_URL+"/zhuShuJu/getListBingQuZd", map); + return sendPost(HIS_URL+"/zhuShuJu/getListBingQuZd", map); } @Override @@ -275,7 +325,7 @@ map.put ("pageIndex",params.get(ApiParamsConstants.PAGE_INDEX)); map.put ("pageSize",params.get(ApiParamsConstants.PAGE_SIZE)); //鑱屼笟缂栫爜 - return sendPostTokenFormData(HIS_URL+"/zhuShuJu/getZhiGongPage", map); + return sendPost(HIS_URL+"/zhuShuJu/getZhiGongPage", map); } @Override @@ -286,7 +336,7 @@ map.put ("pageIndex",params.get(ApiParamsConstants.PAGE_INDEX)); map.put ("pageSize",params.get(ApiParamsConstants.PAGE_SIZE)); //鑱屼笟缂栫爜 - return sendPostTokenFormData(HIS_URL+"/zhuShuJu/getJianChaXm", map); + return sendPost(HIS_URL+"/zhuShuJu/getJianChaXm", map); } @Override @@ -295,7 +345,7 @@ hashMap.put("queryCode",map.get(ApiParamsConstants.COMMON_QUERY_KEY)); hashMap.put("page",map.get(ApiParamsConstants.PAGE_INDEX)); hashMap.put("size",map.get(ApiParamsConstants.PAGE_SIZE)); - return sendPostTokenFormData(HIS_URL+"/zhuShuJu/getJianYanXm", hashMap); + return sendPost(HIS_URL+"/zhuShuJu/getJianYanXm", hashMap); } @Override @@ -303,7 +353,7 @@ HashMap<String, Object> hashMap = new HashMap<>(); hashMap.put("shouFeiXmId",map.get(ApiParamsConstants.COMMON_QUERY_KEY)); hashMap.put("jiaGeTx",map.get(ApiParamsConstants.COMMON_QUERY_KEY2)); - return sendPostTokenFormData(HIS_URL+"/zhuShuJu/getShouFeiXmJg", hashMap); + return sendPost(HIS_URL+"/zhuShuJu/getShouFeiXmJg", hashMap); } @Override @@ -312,7 +362,7 @@ hashMap.put("queryString",map.get(ApiParamsConstants.COMMON_QUERY_KEY)); hashMap.put("pageIndex",map.get(ApiParamsConstants.PAGE_INDEX)); hashMap.put("pageSize",map.get(ApiParamsConstants.PAGE_SIZE)); - return sendPostTokenFormData(HIS_URL+"/zhuShuJu/getRongQi", hashMap); + return sendPost(HIS_URL+"/zhuShuJu/getRongQi", hashMap); } @Override @@ -321,11 +371,39 @@ hashMap.put("queryString",map.get(ApiParamsConstants.COMMON_QUERY_KEY)); hashMap.put("pageIndex",map.get(ApiParamsConstants.PAGE_INDEX)); hashMap.put("pageSize",map.get(ApiParamsConstants.PAGE_SIZE)); - return sendPostTokenFormData(HIS_URL+"/zhuShuJu/getYangBen", hashMap); + return sendPost(HIS_URL+"/zhuShuJu/getYangBen", hashMap); } + @Override + public String pushZhiFuMsg(String hospName,Map<String, Object> params) { + log.info("鍥炶皟瑙﹀彂 ->{}",params); + configValue.refresh(); + Map<String, Object> map = new HashMap<> (); + map.put ("feiYongId",params.get("feiyongid")); + String string = params.get("status").toString(); + if (!string.equals("1")) + string = "2"; + map.put ("yeWuLx",string); + // 鍙傛暟绫诲瀷鍖哄垎 + map.put("type","1"); + String post = HttpClientUtils.sendPost(TJ_URL + "/callBack/pushZhiFuMsg", map); + JSONObject jsonObject = JSONUtil.parseObj(post); + JSONObject obj = JSONUtil.createObj(); + if (jsonObject.getStr("code").equals("200")) { + obj.putOpt("returnCode",1); + obj.putOpt("exceptionContent",""); + obj.putOpt("returnData",null); + }else { + obj.putOpt("returnCode",0); + obj.putOpt("exceptionContent",jsonObject.getStr("msg")); + obj.putOpt("returnData",null); + } + return JSONUtil.toJsonStr(obj); + } + + private String sendPost(String url, Map<String, Object> hashMap){ - Map<Object, Object> entries = redisTemplate.opsForHash().entries("token:his:df"); + Map<Object, Object> entries = redisTemplate.opsForHash().entries("token:his:shanxixamjyy"); if (entries != null && !entries.isEmpty()) { String timeStr = entries.get("time").toString(); String expiresInStr = entries.get("expires_in").toString(); @@ -334,7 +412,7 @@ Instant tokenExpirationTime = Instant.ofEpochSecond(time).plusSeconds(expiresIn); Instant now = Instant.now(); if (now.isAfter(tokenExpirationTime)){ - return refreshToken(url,hashMap); + return refreshToken(url,hashMap,"json"); }else { String accessToken = entries.get("access_token").toString(); String tokenType = entries.get("token_type").toString(); @@ -342,12 +420,12 @@ return StrUtil.isNotBlank(string) ? string : JSONUtil.createObj().toString(); } }else { - return refreshToken(url, hashMap); + return refreshToken(url, hashMap,"json"); } } private String sendPostTokenFormUrlencoded(String url, Map<String, Object> hashMap){ - Map<Object, Object> entries = redisTemplate.opsForHash().entries("token:his:df"); + Map<Object, Object> entries = redisTemplate.opsForHash().entries("token:his:shanxixamjyy"); if (entries != null && !entries.isEmpty()) { String timeStr = entries.get("time").toString(); String expiresInStr = entries.get("expires_in").toString(); @@ -356,7 +434,7 @@ Instant tokenExpirationTime = Instant.ofEpochSecond(time).plusSeconds(expiresIn); Instant now = Instant.now(); if (now.isAfter(tokenExpirationTime)){ - return refreshToken(url,hashMap); + return refreshToken(url,hashMap,"url"); }else { String accessToken = entries.get("access_token").toString(); String tokenType = entries.get("token_type").toString(); @@ -364,12 +442,12 @@ return StrUtil.isNotBlank(string) ? string : JSONUtil.createObj().toString(); } }else { - return refreshToken(url, hashMap); + return refreshToken(url, hashMap,"url"); } } private String sendPostTokenFormData(String url, Map<String, Object> hashMap){ - Map<Object, Object> entries = redisTemplate.opsForHash().entries("token:his:df"); + Map<Object, Object> entries = redisTemplate.opsForHash().entries("token:his:shanxixamjyy"); if (entries != null && !entries.isEmpty()) { String timeStr = entries.get("time").toString(); String expiresInStr = entries.get("expires_in").toString(); @@ -378,7 +456,7 @@ Instant tokenExpirationTime = Instant.ofEpochSecond(time).plusSeconds(expiresIn); Instant now = Instant.now(); if (now.isAfter(tokenExpirationTime)){ - return refreshToken(url,hashMap); + return refreshToken(url,hashMap,"form"); }else { String accessToken = entries.get("access_token").toString(); String tokenType = entries.get("token_type").toString(); @@ -389,28 +467,97 @@ }else return JSONUtil.createObj().toString(); } }else { - return refreshToken(url, hashMap); + return refreshToken(url, hashMap,"form"); } } - private String refreshToken(String url, Map<String, Object> hashMap) { + private String refreshToken(String url, Map<String, Object> hashMap,String type) { JSONObject parseObj = getToken(); if (parseObj != null) { Integer expiresIn = parseObj.getInt("expires_in"); if (expiresIn != null) { parseObj.putOpt("time", Instant.now().getEpochSecond()); - redisTemplate.opsForHash().putAll("token:his:df", parseObj); - redisTemplate.expire("token:his:df", expiresIn - 10, TimeUnit.SECONDS); + redisTemplate.opsForHash().putAll("token:his:shanxixamjyy", parseObj); + redisTemplate.expire("token:his:shanxixamjyy", expiresIn - 10, TimeUnit.SECONDS); String accessToken = parseObj.getStr("access_token"); String tokenType = parseObj.getStr("token_type"); - String string = HttpClientUtils.sendPostTokenFormData(url, hashMap, tokenType + " " + accessToken); - if(StrUtil.isNotBlank(string)){ - JSON json = FieldNameConverter.convertFieldNames(JSONUtil.parse(string)); - return JSONUtil.toJsonStr(json); - } else return JSONUtil.createObj().toString(); + switch (type){ + case "json": + String string = HttpClientUtils.sendPostToken(url, hashMap, tokenType + " " + accessToken); + if(StrUtil.isNotBlank(string)){ + JSON json = FieldNameConverter.convertFieldNames(JSONUtil.parse(string)); + return JSONUtil.toJsonStr(json); + } else return JSONUtil.createObj().toString(); + case "form": + String string1 = HttpClientUtils.sendPostTokenFormData(url, hashMap, tokenType + " " + accessToken); + if(StrUtil.isNotBlank(string1)){ + JSON json = FieldNameConverter.convertFieldNames(JSONUtil.parse(string1)); + return JSONUtil.toJsonStr(json); + } else return JSONUtil.createObj().toString(); + case "url": + String string2 = HttpClientUtils.sendPostTokenFormUrlencoded(url, hashMap, tokenType + " " + accessToken); + if(StrUtil.isNotBlank(string2)){ + JSON json = FieldNameConverter.convertFieldNames(JSONUtil.parse(string2)); + return JSONUtil.toJsonStr(json); + } else return JSONUtil.createObj().toString(); + } } } return JSONUtil.createObj().toString(); } + + @Override + public void syncDict(String hospName) { + HashMap<String, Object> map = new HashMap<>(); + map.put("hosp","shanxiqinxamjyy"); + String post = HttpClientUtils.sendPost(TJ_URL + "/callBack/getZdList", map); + JSONArray jsonArray = JSONUtil.parseObj(post).getJSONArray("data"); + if (jsonArray != null && jsonArray.size() > 0) { + List<HisSyncDict> list = jsonArray.toList(HisSyncDict.class); + String token = ""; + Map<Object, Object> entries = redisTemplate.opsForHash().entries("token:his:shanxixamjyy"); + if (entries != null && !entries.isEmpty()) { + String timeStr = entries.get("time").toString(); + String expiresInStr = entries.get("expires_in").toString(); + long time = Long.parseLong(timeStr); + Long expiresIn = Long.parseLong(expiresInStr); + Instant tokenExpirationTime = Instant.ofEpochSecond(time).plusSeconds(expiresIn); + Instant now = Instant.now(); + if (now.isAfter(tokenExpirationTime)){ + JSONObject parseObj = getToken(); + if (parseObj != null) { + expiresIn = parseObj.getLong("expires_in"); + if (expiresIn != null) { + parseObj.putOpt("time", Instant.now().getEpochSecond()); + redisTemplate.opsForHash().putAll("token:his:shanxixamjyy", parseObj); + redisTemplate.expire("token:his:shanxixamjyy", expiresIn - 10, TimeUnit.SECONDS); + String accessToken = parseObj.getStr("access_token"); + String tokenType = parseObj.getStr("token_type"); + token = tokenType + " " + accessToken; + } + } + }else { + String accessToken = entries.get("access_token").toString(); + String tokenType = entries.get("token_type").toString(); + token = tokenType + " " + accessToken; + } + }else { + JSONObject parseObj = getToken(); + if (parseObj != null) { + Integer expiresIn = parseObj.getInt("expires_in"); + if (expiresIn != null) { + parseObj.putOpt("time", Instant.now().getEpochSecond()); + redisTemplate.opsForHash().putAll("token:his:shanxixamjyy", parseObj); + redisTemplate.expire("token:his:shanxixamjyy", expiresIn - 10, TimeUnit.SECONDS); + String accessToken = parseObj.getStr("access_token"); + String tokenType = parseObj.getStr("token_type"); + token = tokenType + " " + accessToken; + } + } + } + if (StrUtil.isNotBlank(token)) + syncZd.exec(list, token); + } + } } -- Gitblit v1.8.0