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