From 776c0bfcc8bbd37c3ea6337e148820d110731599 Mon Sep 17 00:00:00 2001 From: 赵文轩 <1652863494@qq.com> Date: 星期四, 31 十月 2024 10:04:16 +0800 Subject: [PATCH] 同步结果增加redis锁 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java | 711 ++++++++++++++++++++++++++++++---------------------------- 1 files changed, 370 insertions(+), 341 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java index ac31adf..ca71035 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java @@ -40,6 +40,8 @@ import lombok.extern.slf4j.Slf4j; import lombok.var; import org.aspectj.weaver.AjAttribute; +import org.redisson.api.RLock; +import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; @@ -48,6 +50,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import static com.ltkj.framework.datasource.DynamicDataSourceContextHolder.log; @@ -115,6 +118,8 @@ private HisApiGetMethodService service; @Autowired private HisApiConfigService hisApiConfigService; + @Autowired + private RedissonClient redissonClient; @GetMapping ("/getOperationPermissionsByTjNum") @ApiOperation (value = "(鍒濆椤甸潰 鍜� 鍖荤敓椤甸潰)鏍规嵁浣撴鍙疯幏鍙栨槸鍚﹀彲鎿嶄綔鏉冮檺鎺ュ彛 true鍙搷浣� 鍙嶄箣涓嶅彲") @@ -330,17 +335,21 @@ // @Transactional public AjaxResult dataSynchronization(@RequestParam String tjNumber) { - //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12 - final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); + RLock lock = redissonClient.getLock("lock:check:dataSynchronization:" + tjNumber); + try { + boolean tryLock = lock.tryLock(3L, TimeUnit.SECONDS); + if (tryLock){ + //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12 + final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); - final String sfkqdyhis = configService.selectConfigByKey("sfkqdyhis"); - TjOrder order = orderService.getOrderByTjNum(tjNumber); - if (null != order) { + final String sfkqdyhis = configService.selectConfigByKey("sfkqdyhis"); + TjOrder order = orderService.getOrderByTjNum(tjNumber); + if (null != order) { - //寮�鍚瓧鍏稿脊绐� - if ("Y".equals(getInfoFromSqlData)) { - tbhyxm(order); - // List<LtkjExamJcsqd> one2 = testMapper.getExamJcsqdTmh(tjNumber); + //寮�鍚瓧鍏稿脊绐� + if ("Y".equals(getInfoFromSqlData)) { + tbhyxm(order); + // List<LtkjExamJcsqd> one2 = testMapper.getExamJcsqdTmh(tjNumber); // if (one2 != null && one2.size() > 0) { // DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); // ltkjExamJcsqdService.saveBatch(one2); @@ -354,246 +363,254 @@ // } // } // } - //鍚屾鍖栭獙椤圭洰 - testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); - //鍚屾妫�鏌ラ」鐩� - testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); - asyncService.updateCheckType(order.getTjNumber()); + //鍚屾鍖栭獙椤圭洰 + testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); + //鍚屾妫�鏌ラ」鐩� + testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); + asyncService.updateCheckType(order.getTjNumber()); - } - - //寮�鍚拰his瀵规帴 - if (null != sfkqdyhis && sfkqdyhis.equals("Y")) { - - List<String> baoGaoDans = ltkjHybgdService.getJianYanBaoGaoDan(order.getCardId()); - List<String> jianChaBaoGaoDan = ltkjHybgdService.getJianChaBaoGaoDan(order.getCardId()); - //鍚屾妫�楠� - if (null != baoGaoDans && baoGaoDans.size() > 0) { - Date dates = new Date(); - Map<String, Object> map = new HashMap<>(); - map.put("his_registration_id", order.getCardId()); - map.put("ksbm", ""); - map.put("pationid", ""); - map.put("ksrq", DateUtil.format(DateUtil.beginOfDay(order.getCreateTime()), "yyyy-MM-dd HH:mm:ss")); - map.put("jsrq", DateUtil.format(DateUtil.endOfDay(dates), "yyyy-MM-dd HH:mm:ss")); - map.put("pagecount", 10); - map.put("page", 1); - AjaxResult result = controller.Getlabreportinfo(map); - String result1 = getAjaxResult(result); - JSONObject object = getJSONObject(result1); - String code = object.getStr("ResultCode"); - if (null == code || !code.equals("0")) { - return AjaxResult.error("鍖栭獙椤圭洰鏆傛椂鏈嚭缁撴灉,璇风◢鍚庡悓姝�!!!"); } - JSONArray data = object.getJSONArray("ResultData"); - for (Object datum : data) { - JSONObject jsonObject = (JSONObject) datum; - LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(order.getCardId(), jsonObject.getStr("JYBGID")); - if (null != jybgid) { - ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(order.getCardId(), jsonObject.getStr("JYBGID")); - ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(jybgid.getTmh()); - } - LtkjHysqd hysqd = new LtkjHysqd(); - hysqd.setTjh(order.getCardId()); - hysqd.setTmh(jsonObject.getStr("JYBGID")); - hysqd.setBbbh(jsonObject.getStr("BBDM")); - hysqd.setBbmc(jsonObject.getStr("BBMC")); - hysqd.setXmid(jsonObject.getStr("JYXMDM")); - hysqd.setXmmc(jsonObject.getStr("JYXMMC")); - hysqd.setSqsj(jsonObject.getStr("SQRQ")); - hysqd.setSqys(jsonObject.getStr("SQRBH")); - hysqd.setJgsj(jsonObject.getStr("JYBGRQ")); - hysqd.setSqrxm(jsonObject.getStr("SQRXM")); - hysqd.setSqdh(jsonObject.getStr("SQDBH")); - hysqd.setShrdm(jsonObject.getStr("JYYSBH")); - hysqd.setShrxm(jsonObject.getStr("JYYSQM")); - hysqd.setJybgjg(jsonObject.getStr("JYBGJG")); - if (ltkjHysqdService.save(hysqd)) { - Map<String, Object> hashMap = new HashMap<>(); - hashMap.put("jybgid", hysqd.getTmh()); - AjaxResult bgdres = controller.Getlabdetailinfo(hashMap); - String result2 = getAjaxResult(bgdres); - JSONObject object1 = getJSONObject(result2); - String code1 = object1.getStr("ResultCode"); - if (null != code1 && code1.equals("0")) { - JSONArray datas = object1.getJSONArray("ResultData"); - for (Object o : datas) { - JSONObject js = (JSONObject) o; + //寮�鍚拰his瀵规帴 + if (null != sfkqdyhis && sfkqdyhis.equals("Y")) { + + List<String> baoGaoDans = ltkjHybgdService.getJianYanBaoGaoDan(order.getCardId()); + List<String> jianChaBaoGaoDan = ltkjHybgdService.getJianChaBaoGaoDan(order.getCardId()); + //鍚屾妫�楠� + if (null != baoGaoDans && baoGaoDans.size() > 0) { + Date dates = new Date(); + Map<String, Object> map = new HashMap<>(); + map.put("his_registration_id", order.getCardId()); + map.put("ksbm", ""); + map.put("pationid", ""); + map.put("ksrq", DateUtil.format(DateUtil.beginOfDay(order.getCreateTime()), "yyyy-MM-dd HH:mm:ss")); + map.put("jsrq", DateUtil.format(DateUtil.endOfDay(dates), "yyyy-MM-dd HH:mm:ss")); + map.put("pagecount", 10); + map.put("page", 1); + AjaxResult result = controller.Getlabreportinfo(map); + String result1 = getAjaxResult(result); + JSONObject object = getJSONObject(result1); + String code = object.getStr("ResultCode"); + if (null == code || !code.equals("0")) { + return AjaxResult.error("鍖栭獙椤圭洰鏆傛椂鏈嚭缁撴灉,璇风◢鍚庡悓姝�!!!"); + } + JSONArray data = object.getJSONArray("ResultData"); + + for (Object datum : data) { + JSONObject jsonObject = (JSONObject) datum; + LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(order.getCardId(), jsonObject.getStr("JYBGID")); + if (null != jybgid) { + ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(order.getCardId(), jsonObject.getStr("JYBGID")); + ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(jybgid.getTmh()); + } + LtkjHysqd hysqd = new LtkjHysqd(); + hysqd.setTjh(order.getCardId()); + hysqd.setTmh(jsonObject.getStr("JYBGID")); + hysqd.setBbbh(jsonObject.getStr("BBDM")); + hysqd.setBbmc(jsonObject.getStr("BBMC")); + hysqd.setXmid(jsonObject.getStr("JYXMDM")); + hysqd.setXmmc(jsonObject.getStr("JYXMMC")); + hysqd.setSqsj(jsonObject.getStr("SQRQ")); + hysqd.setSqys(jsonObject.getStr("SQRBH")); + hysqd.setJgsj(jsonObject.getStr("JYBGRQ")); + hysqd.setSqrxm(jsonObject.getStr("SQRXM")); + hysqd.setSqdh(jsonObject.getStr("SQDBH")); + hysqd.setShrdm(jsonObject.getStr("JYYSBH")); + hysqd.setShrxm(jsonObject.getStr("JYYSQM")); + hysqd.setJybgjg(jsonObject.getStr("JYBGJG")); + if (ltkjHysqdService.save(hysqd)) { + Map<String, Object> hashMap = new HashMap<>(); + hashMap.put("jybgid", hysqd.getTmh()); + AjaxResult bgdres = controller.Getlabdetailinfo(hashMap); + String result2 = getAjaxResult(bgdres); + JSONObject object1 = getJSONObject(result2); + String code1 = object1.getStr("ResultCode"); + if (null != code1 && code1.equals("0")) { + JSONArray datas = object1.getJSONArray("ResultData"); + for (Object o : datas) { + JSONObject js = (JSONObject) o; // ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(jsonObject.getStr("JYBGID")); - LtkjHybgd bgd = new LtkjHybgd(); - bgd.setTmh(hysqd.getTmh()); - bgd.setJcxmid(js.getStr("JCZBDM")); - bgd.setJcxm(js.getStr("JCZBMC")); - bgd.setTdh(js.getStr("")); - bgd.setJyjg(js.getStr("JCZBJG")); - bgd.setJgdw(js.getStr("JLDW")); - bgd.setFwzdz(js.getStr("")); - bgd.setFwzgz(js.getStr("")); - bgd.setFwz(js.getStr("CKZFW")); - bgd.setJysj(js.getStr("BGRQ")); - bgd.setJyys(js.getStr("JCRBH")); - bgd.setShsj(js.getStr("BGRQ")); - bgd.setShsj(js.getStr("BGRQ")); - bgd.setShys(js.getStr("SHRBH")); - bgd.setShysmc(js.getStr("SHRXM")); - bgd.setYcbz(js.getStr("YCTS")); + LtkjHybgd bgd = new LtkjHybgd(); + bgd.setTmh(hysqd.getTmh()); + bgd.setJcxmid(js.getStr("JCZBDM")); + bgd.setJcxm(js.getStr("JCZBMC")); + bgd.setTdh(js.getStr("")); + bgd.setJyjg(js.getStr("JCZBJG")); + bgd.setJgdw(js.getStr("JLDW")); + bgd.setFwzdz(js.getStr("")); + bgd.setFwzgz(js.getStr("")); + bgd.setFwz(js.getStr("CKZFW")); + bgd.setJysj(js.getStr("BGRQ")); + bgd.setJyys(js.getStr("JCRBH")); + bgd.setShsj(js.getStr("BGRQ")); + bgd.setShsj(js.getStr("BGRQ")); + bgd.setShys(js.getStr("SHRBH")); + bgd.setShysmc(js.getStr("SHRXM")); + bgd.setYcbz(js.getStr("YCTS")); // bgd.setTpurl(js.getStr("")); - ltkjHybgdService.save(bgd); + ltkjHybgdService.save(bgd); + } + } + + Map<String, Object> fbhashMap = new HashMap<>(); + fbhashMap.put("jybgid", hysqd.getTmh()); + AjaxResult fbres = controller.Getlabgermrepinfo(fbhashMap); + String ajaxResult = getAjaxResult(fbres); + JSONObject fbobject = getJSONObject(ajaxResult); + String fbcode = fbobject.getStr("ResultCode"); + if (null != fbcode && fbcode.equals("0")) { + JSONArray datas = fbobject.getJSONArray("ResultData"); + for (Object o : datas) { + JSONObject js = (JSONObject) o; + LtkjHybgd bgd = new LtkjHybgd(); + bgd.setTmh(hysqd.getTmh()); + bgd.setJcxmid(hysqd.getXmid()); + bgd.setJcxm(hysqd.getXmmc()); + bgd.setTdh(js.getStr("")); + bgd.setJyjg(js.getStr("JCJG")); + bgd.setJgdw("/"); + bgd.setFwzdz("/"); + bgd.setFwzgz("/"); + bgd.setFwz("/"); + bgd.setJysj(js.getStr("BGRQ")); + bgd.setJyys(hysqd.getSqrxm()); + bgd.setShsj(js.getStr("BGRQ")); + bgd.setShys(hysqd.getShrdm()); + bgd.setShysmc(hysqd.getShrxm()); + ltkjHybgdService.save(bgd); + } + } + } } - - Map<String, Object> fbhashMap = new HashMap<>(); - fbhashMap.put("jybgid", hysqd.getTmh()); - AjaxResult fbres = controller.Getlabgermrepinfo(fbhashMap); - String ajaxResult = getAjaxResult(fbres); - JSONObject fbobject = getJSONObject(ajaxResult); - String fbcode = fbobject.getStr("ResultCode"); - if (null != fbcode && fbcode.equals("0")) { - JSONArray datas = fbobject.getJSONArray("ResultData"); - for (Object o : datas) { - JSONObject js = (JSONObject) o; - LtkjHybgd bgd = new LtkjHybgd(); - bgd.setTmh(hysqd.getTmh()); - bgd.setJcxmid(hysqd.getXmid()); - bgd.setJcxm(hysqd.getXmmc()); - bgd.setTdh(js.getStr("")); - bgd.setJyjg(js.getStr("JCJG")); - bgd.setJgdw("/"); - bgd.setFwzdz("/"); - bgd.setFwzgz("/"); - bgd.setFwz("/"); - bgd.setJysj(js.getStr("BGRQ")); - bgd.setJyys(hysqd.getSqrxm()); - bgd.setShsj(js.getStr("BGRQ")); - bgd.setShys(hysqd.getShrdm()); - bgd.setShysmc(hysqd.getShrxm()); - ltkjHybgdService.save(bgd); - } - } - + //鍚屾鍖栭獙椤圭洰 + testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); } - } - //鍚屾鍖栭獙椤圭洰 - testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); - } - /*鍚屾妫�鏌� his鎺ュ彛*/ - if (null != jianChaBaoGaoDan && jianChaBaoGaoDan.size() > 0) { - Map<String, Object> maps = new HashMap<>(); - maps.put("his_registration_id", order.getCardId()); - maps.put("ksbm", "浣撴涓績"); - maps.put("pagecount", 100); - maps.put("page", 1); + /*鍚屾妫�鏌� his鎺ュ彛*/ + if (null != jianChaBaoGaoDan && jianChaBaoGaoDan.size() > 0) { + Map<String, Object> maps = new HashMap<>(); + maps.put("his_registration_id", order.getCardId()); + maps.put("ksbm", "浣撴涓績"); + maps.put("pagecount", 100); + maps.put("page", 1); // AjaxResult results = service.getHISDataNew("Getexamreportinfo", maps); - LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Getexamreportinfo"); - HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); + LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Getexamreportinfo"); + HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); - /*鍚屾妫�鏌� his瀛樺偍杩囩▼*/ - AjaxResult results = jcsqdService.getTjJcProByHisCall("浣撴涓績", order.getCardId(), "''", 100, 1, "'1'"); + /*鍚屾妫�鏌� his瀛樺偍杩囩▼*/ + AjaxResult results = jcsqdService.getTjJcProByHisCall("浣撴涓績", order.getCardId(), "''", 100, 1, "'1'"); - DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); - DynamicDataSourceContextHolder.clearDataSourceType(); + DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); + DynamicDataSourceContextHolder.clearDataSourceType(); - log.info("妫�鏌ラ」鐩煡璇㈣繑鍥炲��: " + results.toString()); + log.info("妫�鏌ラ」鐩煡璇㈣繑鍥炲��: " + results.toString()); - if (Integer.parseInt(results.get("code").toString()) == 200) { - List<Map<String, Object>> datas = (List<Map<String, Object>>) results.get("data"); - if (null != datas && datas.size() > 0) { - jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId()); - jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId()); - for (Map<String, Object> objectMap : datas) { - //淇濆瓨鍏ュ弬鍑哄弬 + if (Integer.parseInt(results.get("code").toString()) == 200) { + List<Map<String, Object>> datas = (List<Map<String, Object>>) results.get("data"); + if (null != datas && datas.size() > 0) { + jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId()); + jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId()); + for (Map<String, Object> objectMap : datas) { + //淇濆瓨鍏ュ弬鍑哄弬 // service.save((JSONObject)objectMap,"Getexamreportinfo",hisApiConfig,JSONUtil.toJsonStr(maps)); - service.save(JSONUtil.parseObj(objectMap), "Getexamreportinfo", hisApiConfig, JSONUtil.toJsonStr(maps)); + service.save(JSONUtil.parseObj(objectMap), "Getexamreportinfo", hisApiConfig, JSONUtil.toJsonStr(maps)); - LtkjExamJcbgd jcbgd = new LtkjExamJcbgd(); - jcbgd.setTjh(order.getCardId()); - if (null != objectMap.get("JCBGID") || !objectMap.get("JCBGID").equals("")) - jcbgd.setTmh(objectMap.get("JCBGID").toString()); + LtkjExamJcbgd jcbgd = new LtkjExamJcbgd(); + jcbgd.setTjh(order.getCardId()); + if (null != objectMap.get("JCBGID") || !objectMap.get("JCBGID").equals("")) + jcbgd.setTmh(objectMap.get("JCBGID").toString()); - if (null != objectMap.get("JCXMDM") || !objectMap.get("JCXMDM").equals("")) - jcbgd.setXmdm(objectMap.get("JCXMDM").toString()); + if (null != objectMap.get("JCXMDM") || !objectMap.get("JCXMDM").equals("")) + jcbgd.setXmdm(objectMap.get("JCXMDM").toString()); - if (null != objectMap.get("JCXMMC") || !objectMap.get("JCXMMC").equals("")) - jcbgd.setXmmc(objectMap.get("JCXMMC").toString()); + if (null != objectMap.get("JCXMMC") || !objectMap.get("JCXMMC").equals("")) + jcbgd.setXmmc(objectMap.get("JCXMMC").toString()); - if (null != objectMap.get("JCXMJG") || !objectMap.get("JCXMJG").equals("")) - jcbgd.setBgNr(objectMap.get("JCXMJG").toString()); + if (null != objectMap.get("JCXMJG") || !objectMap.get("JCXMJG").equals("")) + jcbgd.setBgNr(objectMap.get("JCXMJG").toString()); - if (null != objectMap.get("reporturl") || !objectMap.get("reporturl").equals("")) - jcbgd.setBgUrl(objectMap.get("reporturl").toString()); + if (null != objectMap.get("reporturl") || !objectMap.get("reporturl").equals("")) + jcbgd.setBgUrl(objectMap.get("reporturl").toString()); - if (null != objectMap.get("SHYSQM") || !objectMap.get("SHYSQM").equals("")) - jcbgd.setShysxm(objectMap.get("SHYSQM").toString()); + if (null != objectMap.get("SHYSQM") || !objectMap.get("SHYSQM").equals("")) + jcbgd.setShysxm(objectMap.get("SHYSQM").toString()); - if (null != objectMap.get("SHYSBH") || !objectMap.get("SHYSBH").equals("")) - jcbgd.setShysdm(objectMap.get("SHYSBH").toString()); + if (null != objectMap.get("SHYSBH") || !objectMap.get("SHYSBH").equals("")) + jcbgd.setShysdm(objectMap.get("SHYSBH").toString()); - if (null != objectMap.get("YXZD") || !objectMap.get("YXZD").equals("")) - jcbgd.setYxzd(objectMap.get("YXZD").toString()); + if (null != objectMap.get("YXZD") || !objectMap.get("YXZD").equals("")) + jcbgd.setYxzd(objectMap.get("YXZD").toString()); - if (null != objectMap.get("YXBX") || !objectMap.get("YXBX").equals("")) { - if (objectMap.get("YXBX").toString().equals("null")) { - jcbgd.setYxbx("鏈寮傚父"); - } else { - jcbgd.setYxbx(objectMap.get("YXBX").toString()); + if (null != objectMap.get("YXBX") || !objectMap.get("YXBX").equals("")) { + if (objectMap.get("YXBX").toString().equals("null")) { + jcbgd.setYxbx("鏈寮傚父"); + } else { + jcbgd.setYxbx(objectMap.get("YXBX").toString()); + } + } + if (null != objectMap.get("SJJLSJ") || !objectMap.get("SJJLSJ").equals("")) + jcbgd.setZdsj(objectMap.get("SJJLSJ").toString()); + + if (null != objectMap.get("JCBW") || !objectMap.get("JCBW").equals("")) + jcbgd.setJcbw(objectMap.get("JCBW").toString()); + + if (null != objectMap.get("SQRQSJ") || !objectMap.get("SQRQSJ").equals("")) + jcbgd.setSqsj(objectMap.get("SQRQSJ").toString()); + + jcbgdService.save(jcbgd); } - } - if (null != objectMap.get("SJJLSJ") || !objectMap.get("SJJLSJ").equals("")) - jcbgd.setZdsj(objectMap.get("SJJLSJ").toString()); + jcsqdService.saveLtkjExamJcsqd(order.getCardId()); - if (null != objectMap.get("JCBW") || !objectMap.get("JCBW").equals("")) - jcbgd.setJcbw(objectMap.get("JCBW").toString()); - - if (null != objectMap.get("SQRQSJ") || !objectMap.get("SQRQSJ").equals("")) - jcbgd.setSqsj(objectMap.get("SQRQSJ").toString()); - - jcbgdService.save(jcbgd); - } - jcsqdService.saveLtkjExamJcsqd(order.getCardId()); - - int maxRetries=3; - for (int attempt = 0; attempt < maxRetries; attempt++) { - try { - testMapper.updateDetailByTjJcCall(order.getCardId(), - String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); - break; - } catch (Exception e) { - if (attempt==maxRetries-1){ - throw e; + int maxRetries=3; + for (int attempt = 0; attempt < maxRetries; attempt++) { + try { + testMapper.updateDetailByTjJcCall(order.getCardId(), + String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); + break; + } catch (Exception e) { + if (attempt==maxRetries-1){ + throw e; + } + try { + Thread.sleep(1000); + } catch (InterruptedException ignored) { + } + } } - try { - Thread.sleep(1000); - } catch (InterruptedException ignored) { - } + + }else { + return AjaxResult.error("妫�鏌ラ」鐩殏鏃舵湭鍑虹粨鏋�,璇风◢鍚庡悓姝�!!!"); } } - - }else { - return AjaxResult.error("妫�鏌ラ」鐩殏鏃舵湭鍑虹粨鏋�,璇风◢鍚庡悓姝�!!!"); } - } - } - return AjaxResult.success("鍚屾鎴愬姛"); + return AjaxResult.success("鍚屾鎴愬姛"); - //鍚屾妫�鏌ラ」鐩粰redis缂撳瓨鐜板湪涓嶇敤浜� + //鍚屾妫�鏌ラ」鐩粰redis缂撳瓨鐜板湪涓嶇敤浜� // asyncService.updateCheckType(order.getTjNumber()); - } - //鍖栭獙 - testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); - //妫�鏌� + } + //鍖栭獙 + testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); + //妫�鏌� // jcsqdService.saveLtkjExamJcsqd(order.getCardId()); - return AjaxResult.success("鍚屾鎴愬姛"); + return AjaxResult.success("鍚屾鎴愬姛"); + } + return AjaxResult.error("鏈煡鍒拌浜哄憳浣撴璁板綍"); + } + return AjaxResult.error("璇ヤ汉鍛樻暟鎹鍦ㄥ悓姝ヤ腑锛岃绋嶇瓑"); + } catch (InterruptedException e) { + e.printStackTrace(); + return AjaxResult.error("璇ヤ汉鍛樻暟鎹鍦ㄥ悓姝ヤ腑锛岃绋嶇瓑"); + }finally { + lock.unlock(); } - return AjaxResult.error("鏈煡鍒拌浜哄憳浣撴璁板綍"); } /** @@ -604,148 +621,160 @@ @RepeatSubmit // @Transactional public AjaxResult dataSynchronizationApi(@RequestParam String tjNumber) { - //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12 - final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); + RLock lock = redissonClient.getLock("lock:check:dataSynchronization:" + tjNumber); + try { + boolean tryLock = lock.tryLock(3L, TimeUnit.SECONDS); + if (tryLock){ + //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12 + final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); - final String sfkqdyhis = configService.selectConfigByKey("sfkqdyhis"); - TjOrder order = orderService.getOrderByTjNum(tjNumber); - if (null != order) { + final String sfkqdyhis = configService.selectConfigByKey("sfkqdyhis"); + TjOrder order = orderService.getOrderByTjNum(tjNumber); + if (null != order) { - //寮�鍚瓧鍏稿脊绐� - if ("Y".equals(getInfoFromSqlData)) { - tbhyxm(order); - //鍚屾鍖栭獙椤圭洰 - testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), "148"); - //鍚屾妫�鏌ラ」鐩� - testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), "148"); - asyncService.updateCheckType(order.getTjNumber()); + //寮�鍚瓧鍏稿脊绐� + if ("Y".equals(getInfoFromSqlData)) { + tbhyxm(order); + //鍚屾鍖栭獙椤圭洰 + testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), "148"); + //鍚屾妫�鏌ラ」鐩� + testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), "148"); + asyncService.updateCheckType(order.getTjNumber()); - } - //寮�鍚拰his瀵规帴 - if (null != sfkqdyhis && sfkqdyhis.equals("Y")) { - List<String> baoGaoDans = ltkjHybgdService.getJianYanBaoGaoDan(order.getCardId()); - List<String> jianChaBaoGaoDan = ltkjHybgdService.getJianChaBaoGaoDan(order.getCardId()); - //鍚屾妫�楠� - if (null != baoGaoDans && !baoGaoDans.isEmpty()) { - Date dates = new Date(); - Map<String, Object> map = new HashMap<>(); - map.put("his_registration_id", order.getCardId()); - map.put("ksbm", ""); - map.put("pationid", ""); - map.put("ksrq", DateUtil.format(DateUtil.beginOfDay(order.getCreateTime()), "yyyy-MM-dd HH:mm:ss")); - map.put("jsrq", DateUtil.format(DateUtil.endOfDay(dates), "yyyy-MM-dd HH:mm:ss")); - map.put("pagecount", 10); - map.put("page", 1); - AjaxResult result = controller.Getlabreportinfo(map); - String result1 = getAjaxResult(result); - JSONObject object = getJSONObject(result1); - String code = object.getStr("ResultCode"); - if (null == code || !code.equals("0")) { - return AjaxResult.error("鍖栭獙椤圭洰鏆傛椂鏈嚭缁撴灉,璇风◢鍚庡悓姝�!!!"); } - JSONArray data = object.getJSONArray("ResultData"); - for (Object datum : data) { - JSONObject jsonObject = (JSONObject) datum; - boolean isInsertHysqd = false; - LtkjHysqd hysqd = new LtkjHysqd(); - hysqd.setTjh(order.getCardId()); - hysqd.setTmh(jsonObject.getStr("JYBGID")); - hysqd.setBbbh(jsonObject.getStr("BBDM")); - hysqd.setBbmc(jsonObject.getStr("BBMC")); - hysqd.setXmid(jsonObject.getStr("JYXMDM")); - hysqd.setXmmc(jsonObject.getStr("JYXMMC")); - hysqd.setSqsj(jsonObject.getStr("SQRQ")); - hysqd.setSqys(jsonObject.getStr("SQRBH")); - hysqd.setJgsj(jsonObject.getStr("JYBGRQ")); - hysqd.setSqrxm(jsonObject.getStr("SQRXM")); - hysqd.setSqdh(jsonObject.getStr("SQDBH")); - hysqd.setShrdm(jsonObject.getStr("JYYSBH")); - hysqd.setShrxm(jsonObject.getStr("JYYSQM")); - hysqd.setJybgjg(jsonObject.getStr("JYBGJG")); - QueryWrapper<LtkjHysqd> queryWrapper = new QueryWrapper<>(hysqd); - List<LtkjHysqd> list = ltkjHysqdService.list(queryWrapper); - if (list.isEmpty()) - isInsertHysqd = true; - if (isInsertHysqd){ - saveHysqd(hysqd); - }else { - saveHybgd(hysqd); - } - } - //鍚屾鍖栭獙椤圭洰 - testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), "148"); - } - /*鍚屾妫�鏌� his鎺ュ彛*/ - if (null != jianChaBaoGaoDan && jianChaBaoGaoDan.size() > 0) { - Map<String, Object> maps = new HashMap<>(); - maps.put("his_registration_id", order.getCardId()); - maps.put("ksbm", "浣撴涓績"); - maps.put("pagecount", 100); - maps.put("page", 1); - LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Getexamreportinfo"); - HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); - /*鍚屾妫�鏌� his瀛樺偍杩囩▼*/ - AjaxResult results = jcsqdService.getTjJcProByHisCall("浣撴涓績", order.getCardId(), "''", 100, 1, "'1'"); - DynamicDataSourceContextHolder.clearDataSourceType(); - log.info("妫�鏌ラ」鐩煡璇㈣繑鍥炲��: " + results.toString()); - if (Integer.parseInt(results.get("code").toString()) == 200) { - List<Map<String, Object>> datas = (List<Map<String, Object>>) results.get("data"); - if (null != datas && !datas.isEmpty()) { - jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId()); - jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId()); - for (Map<String, Object> objectMap : datas) { - //淇濆瓨鍏ュ弬鍑哄弬 - service.save(JSONUtil.parseObj(objectMap), "Getexamreportinfo", hisApiConfig, JSONUtil.toJsonStr(maps)); - LtkjExamJcbgd jcbgd = new LtkjExamJcbgd(); - jcbgd.setTjh(order.getCardId()); - if (null != objectMap.get("JCBGID") || !objectMap.get("JCBGID").equals("")) - jcbgd.setTmh(objectMap.get("JCBGID").toString()); - if (null != objectMap.get("JCXMDM") || !objectMap.get("JCXMDM").equals("")) - jcbgd.setXmdm(objectMap.get("JCXMDM").toString()); - if (null != objectMap.get("JCXMMC") || !objectMap.get("JCXMMC").equals("")) - jcbgd.setXmmc(objectMap.get("JCXMMC").toString()); - if (null != objectMap.get("JCXMJG") || !objectMap.get("JCXMJG").equals("")) - jcbgd.setBgNr(objectMap.get("JCXMJG").toString()); - if (null != objectMap.get("reporturl") || !objectMap.get("reporturl").equals("")) - jcbgd.setBgUrl(objectMap.get("reporturl").toString()); - if (null != objectMap.get("SHYSQM") || !objectMap.get("SHYSQM").equals("")) - jcbgd.setShysxm(objectMap.get("SHYSQM").toString()); - if (null != objectMap.get("SHYSBH") || !objectMap.get("SHYSBH").equals("")) - jcbgd.setShysdm(objectMap.get("SHYSBH").toString()); - if (null != objectMap.get("YXZD") || !objectMap.get("YXZD").equals("")) - jcbgd.setYxzd(objectMap.get("YXZD").toString()); - if (null != objectMap.get("YXBX") || !objectMap.get("YXBX").equals("")) { - if (objectMap.get("YXBX").toString().equals("null")) { - jcbgd.setYxbx("鏈寮傚父"); - } else { - jcbgd.setYxbx(objectMap.get("YXBX").toString()); - } - } - if (null != objectMap.get("SJJLSJ") || !objectMap.get("SJJLSJ").equals("")) - jcbgd.setZdsj(objectMap.get("SJJLSJ").toString()); - if (null != objectMap.get("JCBW") || !objectMap.get("JCBW").equals("")) - jcbgd.setJcbw(objectMap.get("JCBW").toString()); - if (null != objectMap.get("SQRQSJ") || !objectMap.get("SQRQSJ").equals("")) - jcbgd.setSqsj(objectMap.get("SQRQSJ").toString()); - jcbgdService.save(jcbgd); + //寮�鍚拰his瀵规帴 + if (null != sfkqdyhis && sfkqdyhis.equals("Y")) { + List<String> baoGaoDans = ltkjHybgdService.getJianYanBaoGaoDan(order.getCardId()); + List<String> jianChaBaoGaoDan = ltkjHybgdService.getJianChaBaoGaoDan(order.getCardId()); + //鍚屾妫�楠� + if (null != baoGaoDans && !baoGaoDans.isEmpty()) { + Date dates = new Date(); + Map<String, Object> map = new HashMap<>(); + map.put("his_registration_id", order.getCardId()); + map.put("ksbm", ""); + map.put("pationid", ""); + map.put("ksrq", DateUtil.format(DateUtil.beginOfDay(order.getCreateTime()), "yyyy-MM-dd HH:mm:ss")); + map.put("jsrq", DateUtil.format(DateUtil.endOfDay(dates), "yyyy-MM-dd HH:mm:ss")); + map.put("pagecount", 10); + map.put("page", 1); + AjaxResult result = controller.Getlabreportinfo(map); + String result1 = getAjaxResult(result); + JSONObject object = getJSONObject(result1); + String code = object.getStr("ResultCode"); + if (null == code || !code.equals("0")) { + return AjaxResult.error("鍖栭獙椤圭洰鏆傛椂鏈嚭缁撴灉,璇风◢鍚庡悓姝�!!!"); } - jcsqdService.saveLtkjExamJcsqd(order.getCardId()); - testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), "148"); - }else { - return AjaxResult.error("妫�鏌ラ」鐩殏鏃舵湭鍑虹粨鏋�,璇风◢鍚庡悓姝�!!!"); + JSONArray data = object.getJSONArray("ResultData"); + for (Object datum : data) { + JSONObject jsonObject = (JSONObject) datum; + boolean isInsertHysqd = false; + LtkjHysqd hysqd = new LtkjHysqd(); + hysqd.setTjh(order.getCardId()); + hysqd.setTmh(jsonObject.getStr("JYBGID")); + hysqd.setBbbh(jsonObject.getStr("BBDM")); + hysqd.setBbmc(jsonObject.getStr("BBMC")); + hysqd.setXmid(jsonObject.getStr("JYXMDM")); + hysqd.setXmmc(jsonObject.getStr("JYXMMC")); + hysqd.setSqsj(jsonObject.getStr("SQRQ")); + hysqd.setSqys(jsonObject.getStr("SQRBH")); + hysqd.setJgsj(jsonObject.getStr("JYBGRQ")); + hysqd.setSqrxm(jsonObject.getStr("SQRXM")); + hysqd.setSqdh(jsonObject.getStr("SQDBH")); + hysqd.setShrdm(jsonObject.getStr("JYYSBH")); + hysqd.setShrxm(jsonObject.getStr("JYYSQM")); + hysqd.setJybgjg(jsonObject.getStr("JYBGJG")); + QueryWrapper<LtkjHysqd> queryWrapper = new QueryWrapper<>(hysqd); + List<LtkjHysqd> list = ltkjHysqdService.list(queryWrapper); + if (list.isEmpty()) + isInsertHysqd = true; + if (isInsertHysqd){ + saveHysqd(hysqd); + }else { + saveHybgd(hysqd); + } + } + //鍚屾鍖栭獙椤圭洰 + testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), "148"); } + /*鍚屾妫�鏌� his鎺ュ彛*/ + if (null != jianChaBaoGaoDan && jianChaBaoGaoDan.size() > 0) { + Map<String, Object> maps = new HashMap<>(); + maps.put("his_registration_id", order.getCardId()); + maps.put("ksbm", "浣撴涓績"); + maps.put("pagecount", 100); + maps.put("page", 1); + LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Getexamreportinfo"); + HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); + /*鍚屾妫�鏌� his瀛樺偍杩囩▼*/ + AjaxResult results = jcsqdService.getTjJcProByHisCall("浣撴涓績", order.getCardId(), "''", 100, 1, "'1'"); + DynamicDataSourceContextHolder.clearDataSourceType(); + log.info("妫�鏌ラ」鐩煡璇㈣繑鍥炲��: " + results.toString()); + if (Integer.parseInt(results.get("code").toString()) == 200) { + List<Map<String, Object>> datas = (List<Map<String, Object>>) results.get("data"); + if (null != datas && !datas.isEmpty()) { + jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId()); + jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId()); + for (Map<String, Object> objectMap : datas) { + //淇濆瓨鍏ュ弬鍑哄弬 + service.save(JSONUtil.parseObj(objectMap), "Getexamreportinfo", hisApiConfig, JSONUtil.toJsonStr(maps)); + LtkjExamJcbgd jcbgd = new LtkjExamJcbgd(); + jcbgd.setTjh(order.getCardId()); + if (null != objectMap.get("JCBGID") || !objectMap.get("JCBGID").equals("")) + jcbgd.setTmh(objectMap.get("JCBGID").toString()); + if (null != objectMap.get("JCXMDM") || !objectMap.get("JCXMDM").equals("")) + jcbgd.setXmdm(objectMap.get("JCXMDM").toString()); + if (null != objectMap.get("JCXMMC") || !objectMap.get("JCXMMC").equals("")) + jcbgd.setXmmc(objectMap.get("JCXMMC").toString()); + if (null != objectMap.get("JCXMJG") || !objectMap.get("JCXMJG").equals("")) + jcbgd.setBgNr(objectMap.get("JCXMJG").toString()); + if (null != objectMap.get("reporturl") || !objectMap.get("reporturl").equals("")) + jcbgd.setBgUrl(objectMap.get("reporturl").toString()); + if (null != objectMap.get("SHYSQM") || !objectMap.get("SHYSQM").equals("")) + jcbgd.setShysxm(objectMap.get("SHYSQM").toString()); + if (null != objectMap.get("SHYSBH") || !objectMap.get("SHYSBH").equals("")) + jcbgd.setShysdm(objectMap.get("SHYSBH").toString()); + if (null != objectMap.get("YXZD") || !objectMap.get("YXZD").equals("")) + jcbgd.setYxzd(objectMap.get("YXZD").toString()); + if (null != objectMap.get("YXBX") || !objectMap.get("YXBX").equals("")) { + if (objectMap.get("YXBX").toString().equals("null")) { + jcbgd.setYxbx("鏈寮傚父"); + } else { + jcbgd.setYxbx(objectMap.get("YXBX").toString()); + } + } + if (null != objectMap.get("SJJLSJ") || !objectMap.get("SJJLSJ").equals("")) + jcbgd.setZdsj(objectMap.get("SJJLSJ").toString()); + if (null != objectMap.get("JCBW") || !objectMap.get("JCBW").equals("")) + jcbgd.setJcbw(objectMap.get("JCBW").toString()); + if (null != objectMap.get("SQRQSJ") || !objectMap.get("SQRQSJ").equals("")) + jcbgd.setSqsj(objectMap.get("SQRQSJ").toString()); + jcbgdService.save(jcbgd); + } + jcsqdService.saveLtkjExamJcsqd(order.getCardId()); + testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), "148"); + }else { + return AjaxResult.error("妫�鏌ラ」鐩殏鏃舵湭鍑虹粨鏋�,璇风◢鍚庡悓姝�!!!"); + } + } + } + return AjaxResult.success("鍚屾鎴愬姛"); } + //鍖栭獙 + testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), "148"); + //妫�鏌� + jcsqdService.saveLtkjExamJcsqd(order.getCardId()); + return AjaxResult.success("鍚屾鎴愬姛"); } - return AjaxResult.success("鍚屾鎴愬姛"); + return AjaxResult.error("鏈煡鍒拌浜哄憳浣撴璁板綍"); } - //鍖栭獙 - testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), "148"); - //妫�鏌� - jcsqdService.saveLtkjExamJcsqd(order.getCardId()); - return AjaxResult.success("鍚屾鎴愬姛"); + return AjaxResult.error("璇ヤ汉鍛樻暟鎹鍦ㄥ悓姝ヤ腑锛岃绋嶇瓑"); + } catch (InterruptedException e) { + e.printStackTrace(); + return AjaxResult.error("璇ヤ汉鍛樻暟鎹鍦ㄥ悓姝ヤ腑锛岃绋嶇瓑"); + } finally { + lock.unlock(); } - return AjaxResult.error("鏈煡鍒拌浜哄憳浣撴璁板綍"); } private void saveHysqd(LtkjHysqd hysqd) { -- Gitblit v1.8.0