From 1e91dc33009cfdc951b2642877f40280b51c3089 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期五, 28 二月 2025 15:17:01 +0800
Subject: [PATCH] zjh20250228

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java | 1193 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 964 insertions(+), 229 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 caec8fa..4f71514 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
@@ -1,5 +1,6 @@
 package com.ltkj.web.controller.system;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
@@ -7,6 +8,7 @@
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ltkj.common.annotation.RepeatSubmit;
@@ -31,11 +33,15 @@
 import com.ltkj.system.service.ISysUserService;
 import com.ltkj.web.controller.his.HisApiGetMethodService;
 import com.ltkj.web.controller.his.HisApiMethodService;
+import com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+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;
@@ -43,11 +49,16 @@
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.text.Collator;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
+import static com.ltkj.framework.datasource.DynamicDataSourceContextHolder.log;
 import static org.apache.poi.hemf.record.emfplus.HemfPlusRecordType.save;
 import static org.apache.poi.hemf.record.emfplus.HemfPlusRecordType.setClipRect;
+import static org.jeecg.modules.jmreport.dyndb.util.b.a;
+import static org.jeecg.modules.jmreport.dyndb.util.b.e;
 
 /**
  * @Author: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃/璧典匠璞�
@@ -55,7 +66,8 @@
  */
 @RestController
 @RequestMapping ("/check")
-@Api (tags = "鎬绘鍖诲笀鐩稿叧鎺ュ彛")
+@Api (tags = "AAAAAAAAAAAA鎬绘鍖诲笀鐩稿叧鎺ュ彛")
+@Slf4j
 public class TjCheckController {
     @Resource
     private ITjOrderService orderService;
@@ -107,6 +119,66 @@
     private HisApiMethodService controller;
     @Autowired
     private HisApiGetMethodService service;
+    @Autowired
+    private HisApiConfigService hisApiConfigService;
+    @Autowired
+    private RedissonClient redissonClient;
+    @Autowired
+    private ITjRulesService rulesService;
+    @Autowired
+    private ITjProAdvicerulesService tjProAdvicerulesService;
+    @Autowired
+    private TjOrderYcxmService ycxmService;
+
+
+    @GetMapping ("/ceshicc")
+    @ApiOperation (value = "娴嬭瘯璋冪敤瀛樺偍杩囩▼鑰楁椂鎺ュ彛")
+    @RepeatSubmit
+//    @Transactional
+    public AjaxResult ceshicc() {
+
+        List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd1("8003241206085556");
+        if(null !=jcsqdList && !jcsqdList.isEmpty()){
+            jcsqdService.deletedLtkjJcsqdByTjhAndTmh("8003241206085556");
+            jcbgdService.deletedLtkjJcbgdByTjhAndTmh("8003241206085556");
+            jcsqdService.saveBatch(jcsqdList);
+            List<LtkjExamJcbgd> jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd1("8003241206085556");
+            if(null != jcbgdList && !jcbgdList.isEmpty())jcbgdService.saveBatch(jcbgdList);
+            DynamicDataSourceContextHolder.clearDataSourceType();
+        }
+        return AjaxResult.success();
+    }
+
+
+
+//    @GetMapping ("/ceshi")
+//    @ApiOperation (value = "娴嬭瘯璋冪敤lis瑙嗗浘鏁版嵁鎺ュ彛")
+//    @RepeatSubmit
+////    @Transactional
+//    public AjaxResult ceshi() {
+//        List<Map<String, Object>> ccXZxYyLisJgSt = testMapper.getCcXZxYyLisJgSt();
+//        return AjaxResult.success(ccXZxYyLisJgSt);
+//    }
+
+
+//    @GetMapping ("/pacs")
+//    @ApiOperation (value = "娴嬭瘯璋冪敤pacs瑙嗗浘鏁版嵁鎺ュ彛")
+//    @RepeatSubmit
+//    public AjaxResult pacs() {
+//        List<Map<String, Object>> ccXZxYyPacsJgSt = testMapper.getCcXZxYyPacsJgSt();
+//
+//        List<LtkjExamJcsqd> list = testMapper.getCcXZxYyPacsLtkjExamJcsqd("");
+//
+//        log.info(list.toString());
+//
+//        List<LtkjExamJcbgd> list1 = testMapper.getCcXZxYyPacsLtkjExamJcbgd("");
+//
+//        log.info(list1.toString());
+//
+//        return AjaxResult.success(ccXZxYyPacsJgSt);
+//    }
+
+
 
 
     @GetMapping ("/getOperationPermissionsByTjNum")
@@ -258,8 +330,13 @@
 //            });
 //        }
 
-        List<CsProVo> list = orderRemarkService.cSWebGetProByTjNumAndOrderId(tjNumber);
-        if (null != list && list.size() > 0) {
+        List<CsProVo> list = getCsProVos(tjNumber,false);
+        return AjaxResult.success(list);
+    }
+
+    public List<CsProVo> getCsProVos(String tjNumber,boolean sfzpacs) {
+        List<CsProVo> list = orderRemarkService.cSWebGetProByTjNumAndOrderId(tjNumber,sfzpacs);
+        if (null != list && !list.isEmpty()) {
             list.sort(new Comparator<CsProVo>() {
                 @Override
                 public int compare(CsProVo o1, CsProVo o2) {
@@ -267,7 +344,7 @@
                 }
             });
         }
-        return AjaxResult.success(list);
+        return list;
     }
 
 
@@ -292,7 +369,7 @@
                 tjOrder.setConfirmStatus(String.valueOf(status));
                 if (status == 0) {
                     tjOrder.setStatus(TjConstants.TJ_CHECK);
-                    asyncService.updateCheckType(tjNumber);
+//                    asyncService.updateCheckType(tjNumber);
                 } else {
                     tjOrder.setStatus(TjConstants.TJ_REFUSED);
                 }
@@ -302,8 +379,8 @@
                     confirmLog.setTjNum(tjNumber);
                     confirmLog.setStatus(status);
                     confirmLogService.save(confirmLog);
-                    asyncService.wCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, 0, null, null, null));
-                    asyncService.yCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, 1, null, null, null));
+//                    asyncService.wCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, 0, null, null, null));
+//                    asyncService.yCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, 1, null, null, null));
                     return AjaxResult.success("鎿嶄綔鎴愬姛");
                 }
                 return AjaxResult.error("鎿嶄綔澶辫触");
@@ -320,19 +397,25 @@
     @GetMapping ("/dataSynchronization")
     @ApiOperation (value = "鍚屾sql server鏁版嵁鍒版湰鍦版暟鎹簱鏁版嵁鎺ュ彛")
     @RepeatSubmit
-    @Transactional
+//    @Transactional
     public AjaxResult dataSynchronization(@RequestParam String tjNumber) {
-        //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12
-        final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
 
-        final String sfkqdyhis = configService.selectConfigByKey("sfkqdyhis");
-        TjOrder order = orderService.getOrderByTjNum(tjNumber);
-        if (null != order) {
+        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");
 
-            //寮�鍚瓧鍏稿脊绐�
-            if ("Y".equals(getInfoFromSqlData)) {
-                tbhyxm(order);
-                //                List<LtkjExamJcsqd> one2 = testMapper.getExamJcsqdTmh(tjNumber);
+                final String sfkqdyhis = configService.selectConfigByKey("sfkqdyhis");
+                final String sfkqdshitulianjie = configService.selectConfigByKey("sfkqdshitulianjie");
+                TjOrder order = orderService.getOrderByTjNum(tjNumber);
+                if (null != order) {
+
+                    //寮�鍚瓧鍏稿脊绐�
+                    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);
@@ -346,203 +429,540 @@
 //                        }
 //                    }
 //                }
-                //鍚屾鍖栭獙椤圭洰
-                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());
-                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");
-//                    int size = data.size();
-//                    if(size>0){
-//
-//                     }
-                    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"));
-//                            bgd.setTpurl(js.getStr(""));
-                                    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> 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);
-                    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){
-                            for (Map<String, Object> objectMap : datas) {
-                                LtkjExamJcsqd jybgid = jcsqdService.getLtkjJcsqdByTjhAndTmh(order.getCardId(), objectMap.get("JCBGID").toString());
+                    //寮�鍚拰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) {
-                                    jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId(), objectMap.get("JCBGID").toString());
-                                    jcbgdService.deletedLtkjJcbgdByTjhAndTmh(jybgid.getTmh());
+                                    ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(order.getCardId(), jsonObject.getStr("JYBGID"));
+                                    ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(jybgid.getTmh());
                                 }
-                                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());
+                                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"));
+//                            bgd.setTpurl(js.getStr(""));
+                                            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);
+                                        }
+                                    }
+
                                 }
-                                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.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());
-                //鍚屾妫�鏌ラ」鐩�
-                testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
-                asyncService.updateCheckType(order.getTjNumber());
+                        /*鍚屾妫�鏌� 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瀛樺偍杩囩▼*/
+
+                            String jctbfs = configService.selectConfigByKey("jctbfs");
+                            AjaxResult results =null;
+                            if (jctbfs.equalsIgnoreCase("Y")){
+                                results = service.getHISDataNew("Getexamreportinfo", maps);
+                            }else{
+                                results = jcsqdService.getTjJcProByHisCall("浣撴涓績", order.getCardId(), "''", 100, 1, "'1'");
+                            }
+
+
+                            DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
+                            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.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));
+
+
+                                        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());
+
+                                    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) {
+                                            }
+                                        }
+                                    }
+                                }else {
+                                    return AjaxResult.error("妫�鏌ラ」鐩殏鏃舵湭鍑虹粨鏋�,璇风◢鍚庡悓姝�!!!");
+                                }
+                            }
+                        }
+                        return AjaxResult.success("鍚屾鎴愬姛");
+                    }
+                    else if(null !=sfkqdshitulianjie && sfkqdshitulianjie.equalsIgnoreCase("Y")){
+                        List<LtkjHysqd> hysqdList = testMapper.getCcXZxYyLtkjHysqdByLisVi(order.getTjNumber());
+                        if(null != hysqdList && !hysqdList.isEmpty()){
+                            for (LtkjHysqd hysqd : hysqdList) {
+                                LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(hysqd.getTjh(),hysqd.getTmh());
+                                if (null != jybgid) {
+                                    ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(hysqd.getTjh(),hysqd.getTmh());
+                                    ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(hysqd.getTmh());
+                                }
+                                if (ltkjHysqdService.save(hysqd)) {
+                                    List<LtkjHybgd> hybgdList = testMapper.getCcXZxYyLtkjHybgdByLisVi(hysqd.getTmh());
+                                    ltkjHybgdService.saveBatch(hybgdList);
+                                }
+                            }
+                            DynamicDataSourceContextHolder.clearDataSourceType();
+                        }
+                        List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(order.getTjNumber());
+                        if(null !=jcsqdList && !jcsqdList.isEmpty()){
+                            jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId());
+                            jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId());
+                            jcsqdService.saveBatch(jcsqdList);
+                            List<LtkjExamJcbgd> jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd(order.getCardId());
+                            if(null != jcbgdList && !jcbgdList.isEmpty())jcbgdService.saveBatch(jcbgdList);
+                            DynamicDataSourceContextHolder.clearDataSourceType();
+                        }
+//                        String tjNumber1 = order.getTjNumber();
+//                        log.info("鏌ヨ鍑烘潵鐨勪綋妫�鍙锋槸: " + tjNumber1);
+//                        log.info("浼犺繃鏉ョ殑鐨勪綋妫�鍙锋槸: "+tjNumber);
+                        Map<String,Object> map=new HashMap<>();
+                        map.put("tjnum",tjNumber);
+                        testMapper.tjUpdateDetatilByVi(map);
+                    }else {
+                        //鍖栭獙
+                        testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
+                    }
+                  //妫�鏌�
+                    orderService.tjLispacstongbujianyi(null,null,null,null);
+                    return AjaxResult.success("鍚屾鎴愬姛");
+                }
+                return AjaxResult.error("鏈煡鍒拌浜哄憳浣撴璁板綍");
             }
-            return AjaxResult.success("鍚屾鎴愬姛");
+            return AjaxResult.error("璇ヤ汉鍛樻暟鎹鍦ㄥ悓姝ヤ腑锛岃绋嶇瓑");
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+            return AjaxResult.error("璇ヤ汉鍛樻暟鎹鍦ㄥ悓姝ヤ腑锛岃绋嶇瓑");
+        }finally {
+            lock.unlock();
         }
-        return AjaxResult.error();
+    }
+
+
+
+    /**
+     * 鍚屾sql server鏁版嵁鍒版湰鍦版暟鎹簱鏁版嵁鎺ュ彛
+     */
+    @GetMapping ("/dataSynchronizationApi")
+    @ApiOperation (value = "鍚屾sql server鏁版嵁鍒版湰鍦版暟鎹簱鏁版嵁鎺ュ彛")
+    @RepeatSubmit
+//    @Transactional
+    public AjaxResult dataSynchronizationApi(@RequestParam String tjNumber) {
+        RLock lock = redissonClient.getLock("lock:check:dataSynchronization:" + tjNumber);
+        try {
+            boolean tryLock = lock.tryLock(3L, TimeUnit.SECONDS);
+            if (tryLock){
+                String doctorId = configService.selectConfigByKey("request_default_check_doctorId");
+                //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12
+                final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
+
+                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(), doctorId);
+                        //鍚屾妫�鏌ラ」鐩�
+//                        testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId);
+                        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"));
+                                hysqd.setCreateTime(new Date());
+                                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(), doctorId);
+                        }
+                        /*鍚屾妫�鏌� his鎺ュ彛*/
+                        if (null != jianChaBaoGaoDan && !jianChaBaoGaoDan.isEmpty()) {
+                            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瀛樺偍杩囩▼*/
+                            String jctbfs = configService.selectConfigByKey("jctbfs");
+                            AjaxResult results =null;
+                            if (jctbfs.equalsIgnoreCase("Y")){
+                                results = service.getHISDataNew("Getexamreportinfo", maps);
+                            }else{
+                                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());
+                                            jcbgd.setCreateTime(new Date());
+                                        jcbgdService.save(jcbgd);
+                                    }
+                                    jcsqdService.saveLtkjExamJcsqd(order.getCardId());
+//                                    testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId);
+                                }else {
+                                    return AjaxResult.error("妫�鏌ラ」鐩殏鏃舵湭鍑虹粨鏋�,璇风◢鍚庡悓姝�!!!");
+                                }
+                            }
+                        }
+                        return AjaxResult.success("鍚屾鎴愬姛");
+                    }
+                    //鍖栭獙
+//                    testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId);
+                    //妫�鏌�
+                    jcsqdService.saveLtkjExamJcsqd(order.getCardId());
+                    return AjaxResult.success("鍚屾鎴愬姛");
+                }
+                return AjaxResult.error("鏈煡鍒拌浜哄憳浣撴璁板綍");
+            }
+            return AjaxResult.error("璇ヤ汉鍛樻暟鎹鍦ㄥ悓姝ヤ腑锛岃绋嶇瓑");
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+            return AjaxResult.error("璇ヤ汉鍛樻暟鎹鍦ㄥ悓姝ヤ腑锛岃绋嶇瓑");
+        } finally {
+            lock.unlock();
+        }
+    }
+
+    private void saveHysqd(LtkjHysqd hysqd) {
+        if (ltkjHysqdService.save(hysqd)) {
+            saveHybgd(hysqd);
+        }
+    }
+
+    private void saveHybgd(LtkjHysqd 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"));
+                bgd.setCreateTime(new Date());
+//                            bgd.setTpurl(js.getStr(""));
+                QueryWrapper<LtkjHybgd> queryWrapper = new QueryWrapper<>(bgd);
+                List<LtkjHybgd> list = ltkjHybgdService.list(queryWrapper);
+                if (list.isEmpty())
+                    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());
+                QueryWrapper<LtkjHybgd> queryWrapper = new QueryWrapper<>(bgd);
+                List<LtkjHybgd> list = ltkjHybgdService.list(queryWrapper);
+                if (list.isEmpty())
+                    ltkjHybgdService.save(bgd);
+            }
+        }
     }
 
     //灏嗘柟娉曡繑鍥炲�艰В鏋愭垚json鏍煎紡
@@ -558,7 +978,7 @@
 
     private void tbhyxm(TjOrder order) {
         List<LtkjHysqd> one = testMapper.getHysqdByTmh(order.getCardId());
-        if (one != null && one.size() > 0) {
+        if (one != null && !one.isEmpty()) {
             for (LtkjHysqd ltkjHysqd : one) {
                 ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(ltkjHysqd.getTjh(), ltkjHysqd.getTmh());
                 ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(ltkjHysqd.getTmh());
@@ -567,7 +987,7 @@
                     ltkjHysqdService.save(ltkjHysqd);
                     DynamicDataSourceContextHolder.clearDataSourceType();
                     List<LtkjHybgd> one1 = testMapper.getHybgdByTmh(ltkjHysqd.getTmh());
-                    if (one1 != null && one1.size() > 0) {
+                    if (one1 != null && !one1.isEmpty()) {
                         DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
                         ltkjHybgdService.saveBatch(one1);
                         DynamicDataSourceContextHolder.clearDataSourceType();
@@ -691,6 +1111,119 @@
         return AjaxResult.success(orderService.getCunChuGuoChengCustomerList(tjNumber, page, pageSize, checkStatus, value, beginTime, endTime, name));
     }
 
+
+
+    @GetMapping ("/getBghsList")
+    @ApiOperation (value = "鎶ュ憡鏍告敹椤甸潰鏌ヨ鎺ュ彛")//0寰�1宸�
+//    @PreAuthorize("@ss.hasPermi('check:check:getList')")
+    public AjaxResult getBghsList(@ApiParam (value = "椤电爜鏁�(榛樿1)") @RequestParam (defaultValue = "1") Integer page,
+                              @ApiParam (value = "鏄剧ず鏉℃暟(榛樿10)") @RequestParam (defaultValue = "10") Integer pageSize,
+                              @ApiParam (value = "浣撴鍗曞彿") @RequestParam (required = false) String tjNumber,
+                              @ApiParam (value = "鍗曚綅") @RequestParam (required = false) Long compId,
+                              @ApiParam (value = "濮撳悕)") @RequestParam (required = false) String name,
+                              @ApiParam (value = "寮�濮嬫椂闂�") @RequestParam (required = false) String beginTime,
+                              @ApiParam (value = "缁撴潫鏃堕棿") @RequestParam (required = false) String endTime) {
+        //        String config = configService.selectConfigByKey("tj_confirm");
+//        DateTime beginTimes = null;
+//        DateTime endTimes = null;
+//        if (null != beginTime && null != endTime) {
+//            beginTimes = DateUtil.beginOfDay(DateUtil.parse(beginTime));
+//            endTimes = DateUtil.endOfDay(DateUtil.parse(endTime));
+//        }
+//        asyncService.checkSetCustomerLisByRedis(config);
+//        //鍒濆鍖栦綋妫�璁㈠崟琛�
+//        List<TjOrder> orderList = null;
+//        List<TjCustomer> customerList = new ArrayList<>();
+//        Map<String, Object> map = new HashMap<>();
+//
+//        //濮撳悕鏌ヨ
+//        if (null != name && !"".equals(name)) {
+//            List<TjCustomer> list = customerService.getTjCustomerList(name);
+//            if (null != list && list.size() > 0) {
+//                List<TjCustomer> lists = new ArrayList<>();
+//                for (TjCustomer customer : list) {
+//                    if ("Y".equals(config)) {
+//                        orderList = orderService.getCsTjOrderListByCusId1(customer.getCusId());
+//                    } else {
+//                        orderList = orderService.getTjOrderListByCusId(customer.getCusId());
+//                    }
+//                    if (null != orderList && orderList.size() > 0) {
+//                        for (TjOrder tjOrder : orderList) {
+//                            customer.setTjNumber(tjOrder.getTjNumber());
+//                            customer.setTjStatus(Long.valueOf(tjOrder.getCheckStatus()));
+//                            customer.setOrderId(tjOrder.getOrderId());
+//                            customer.setTjTime(tjOrder.getFinishTime());
+//                            customer.setFinishTime(tjOrder.getFinishTime());
+//                            customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
+//                            customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
+//                            customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
+//                            customer.setConfirmStatus(String.valueOf(tjOrder.getStatus()));
+//                            customer.setTjCategory(tjOrder.getTjCategory());
+//                            if (tjOrder.getFirmId().equals("0")) {
+//                                customer.setTjCompName(null);
+//                            } else {
+//                                customer.setTjCompName(compService.selectDictCompByDrugManufacturerId(tjOrder.getFirmId()).getCnName());
+//                            }
+//                            lists.add(customer);
+//                        }
+//                    }
+//                }
+//                List<TjCustomer> customers = null;
+//                if (lists.size() > 0) {
+//                    customers = lists.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+//                }
+//                map.put("customers", customers);
+//                map.put("total", lists.size());
+//                return AjaxResult.success(map);
+//            }
+//            return AjaxResult.success("鏆傛棤鏁版嵁");
+//        }
+//
+//        //鏉′欢鏌ヨ
+//        if (null != tjNumber || null != compId || (null != beginTime && null != endTime)) {
+//            //鍒ゆ柇鏄惁寮�鍚垵瀹�
+//            if ("Y".equals(config)) {
+//                orderList = orderService.getCsTjOrderList1(tjNumber, checkStatus, compId, beginTimes, endTimes);
+//            } else {
+//                orderList = orderService.getTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes);
+//            }
+//            return getResult(page, pageSize, orderList, customerList, map);
+//        }
+//
+//        List<TjCustomer> customers = null;
+//        if (null != checkStatus && checkStatus == 0) {
+//            customers = redisCache.getCacheMapValue("check", "ws");
+//        }
+//        if (null != checkStatus && checkStatus == 1) {
+//            customers = redisCache.getCacheMapValue("check", "ys");
+//        }
+//        if (customers != null && customers.size() > 0) {
+////            asyncService.addRedis(customers);
+//            List<TjCustomer> customerLists = customers.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
+//            map.put("customers", customerLists);
+//            map.put("total", customers.size());
+//            return AjaxResult.success(map);
+//        } else {
+//            //鍒ゆ柇鏄惁寮�鍚垵瀹�
+//            if ("Y".equals(config)) {
+//                orderList = orderService.getCsTjOrderList1(tjNumber, checkStatus, compId, beginTimes, endTimes);
+//            } else {
+//                orderList = orderService.getTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes);
+//            }
+//            return getResult(page, pageSize, orderList, customerList, map);
+//        }
+
+        String value = String.valueOf(compId);
+        if (tjNumber == null) tjNumber = "";
+        if (compId == null) value = "";
+        if (name == null) name = "";
+        if (beginTime == null) beginTime = "";
+        if (endTime == null) endTime = "";
+        return AjaxResult.success(orderService.getgetBghsList(tjNumber, page, pageSize, value, beginTime, endTime, name));
+    }
+
+
+
     /**
      * 鏍规嵁浣撴璁㈠崟鍙疯幏鍙栦綋妫�璇︽儏淇℃伅鎺ュ彛
      *
@@ -706,8 +1239,12 @@
                                       @ApiParam (value = "鎬绘寤鸿") @RequestParam (required = false) String advice,
                                       @ApiParam (value = "瀹℃牳鐘舵��0寰呭鏍�1宸插鏍�") @RequestParam Integer checkStatus) {
 
-        int num = orderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
-        if (num > 0) return AjaxResult.error("鏈夊欢鏈熼」鐩殏涓嶈兘鐢熸垚鎶ュ憡!!!");
+        String config = configService.selectConfigByKey("sfjcwjhyqxm");
+        if(null != config && config.equalsIgnoreCase("Y")){
+            int num = orderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
+            if (num > 0) return AjaxResult.error("瀛樺湪鏈鎴栧欢鏈熼」鐩殏涓嶈兘鐢熸垚鎶ュ憡!!!");
+        }
+        Date date = new Date();
         if (null != tjNumber) {
             Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
             SysUser sysUser = userService.getById(userId);
@@ -719,17 +1256,15 @@
                 tjOrder.setCheckStatus(checkStatus);
                 tjOrder.setStatus(TjConstants.TJ_CHECK);
                 tjOrder.setCheckDoctor(sysUser.getNickName());
-                tjOrder.setCheckTime(new Date());
+                tjOrder.setCheckTime(date);
                 tjOrder.setStatus(401);
+                tjOrder.setFinishTime(date);
                 if (orderService.updateById(tjOrder)) {
                     TjCustomer customer = customerService.getById(tjOrder.getUserId());
                     if (null != customer) {
                         customer.setCusNumber(customer.getCusNumber() + 1);
+                        customer.setCardId("0");
                         if (customerService.updateById(customer)) {
-//                            LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
-//                            wqq.eq(TbTransition::getCusId, customer.getCusIdcard());
-//                            wqq.eq(TbTransition::getCardId, customer.getCardId());
-//                            transitionService.remove(wqq);
                             asyncService.updateCheckType(tjNumber);
                             return AjaxResult.success("鎿嶄綔鎴愬姛");
                         }
@@ -877,14 +1412,14 @@
         List<TjOrderDetail> tjOrderDetails = detailService.addHuaYanTable(tjNumber);
 
 
-        if (null != remarkList && remarkList.size() > 0) {
+        if (null != remarkList && !remarkList.isEmpty()) {
             for (TjOrderRemark remark : remarkList) {
                 Map<String, Object> parent = new HashMap<>();
                 parent.put("checkAdvice", one.getCheckAdvice());
                 parent.put("parent", remark.getProName());
                 parent.put("parentId", remark.getProId().toString());
                 List<TjOrderDetail> dels = new ArrayList<>();
-                if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
+                if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) {
                     for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
                         if (remark.getProId().equals(tjOrderDetail.getProId())) {
                             String ckfw = tjOrderDetail.getStanId();
@@ -960,12 +1495,12 @@
 //        final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
 //        if(null !=getInfoFromSqlData && getInfoFromSqlData.equals("Y"))
 //        tbhyxm(one);
-        TjCustomer customer = customerService.getById(one.getUserId());
+//        TjCustomer customer = customerService.getById(one.getUserId());
         List<TjOrderRemark> remarkList = orderRemarkService.addHuaYanAndCgTable(tjNumber);
         List<TjOrderDetail> tjOrderDetails = detailService.addHuaYanAndCgTable(tjNumber);
 
 
-        if (null != remarkList && remarkList.size() > 0) {
+        if (null != remarkList && !remarkList.isEmpty()) {
             for (TjOrderRemark remark : remarkList) {
                 Map<String, Object> parent = new HashMap<>();
                 parent.put("checkAdvice", one.getCheckAdvice());
@@ -974,7 +1509,7 @@
                 parent.put("xmlb", remark.getXmlb());
                 parent.put("", remark.getXmlb());
                 List<TjOrderDetail> dels = new ArrayList<>();
-                if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
+                if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) {
                     for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
                         if (remark.getProsId().equals(tjOrderDetail.getProsId())) {
                             String ckfw = tjOrderDetail.getStanId();
@@ -983,30 +1518,44 @@
                             }
                             if (StrUtil.isNotBlank(ckfw)) {
                                 try {
+                                    if (ckfw != null && ckfw.contains("-")) {
                                     Integer.parseInt(tjOrderDetail.getYcbz());
                                     String[] split = ckfw.split("-");
                                     BigDecimal min = new BigDecimal(split[0]);
                                     BigDecimal max = new BigDecimal(split[1]);
                                     String proResult = tjOrderDetail.getProResult();
-                                    BigDecimal jyjgval = new BigDecimal(proResult);
-                                    if (jyjgval.compareTo(min) < 0) {
-                                        tjOrderDetail.setYcbz("鈫�");
-                                    } else if (jyjgval.compareTo(max) > 0) {
-                                        tjOrderDetail.setYcbz("鈫�");
-                                    } else {
+                                    if(null !=proResult){
+                                        BigDecimal jyjgval = new BigDecimal(proResult);
+                                        if (jyjgval.compareTo(min) < 0) {
+                                            tjOrderDetail.setYcbz("鈫�");
+                                        } else if (jyjgval.compareTo(max) > 0) {
+                                            tjOrderDetail.setYcbz("鈫�");
+                                        } else if(proResult.contains("闃�")) {
+                                            tjOrderDetail.setYcbz("");
+                                        }else {
+                                            tjOrderDetail.setYcbz("");
+                                        }
+                                        if (null != tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().isEmpty()) {
+                                            tjOrderDetail.setProResult(tjOrderDetail.getProResult() + " [" + tjOrderDetail.getYcbz() + "]");
+                                        }
+                                    }else {
                                         tjOrderDetail.setYcbz("");
                                     }
+                                    }else {
+                                        if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("闃�")) tjOrderDetail.setYcbz("");
+
+                                        if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("闃�")) tjOrderDetail.setYcbz("鈫�");
+                                    }
                                 } catch (NumberFormatException ignored) {
-                                    ignored.printStackTrace();
-                                }
-                                if (null != tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().equals("")) {
-                                    tjOrderDetail.setProResult(tjOrderDetail.getProResult() + " [" + tjOrderDetail.getYcbz() + "]");
                                 }
                             }else {
+                                tjOrderDetail.setYcbz("");
                                 tjOrderDetail.setProResult(tjOrderDetail.getProResult());
                             }
 
-                            dels.add(tjOrderDetail);
+                            if(remark.getOrgType().equals(tjOrderDetail.getOrgType())){
+                                dels.add(tjOrderDetail);
+                            }
                         }
                     }
                     String summary = remark.getSummary();
@@ -1016,9 +1565,15 @@
                     } else {
                         parent.put("parentAdvice", null);
                     }
-                    if (dels.size() == 0) {
+                    if (dels.isEmpty()) {
                         continue;
                     }
+                    dels=dels.stream().sorted(Comparator.comparing(TjOrderDetail::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
+                    dels = dels.stream()
+                                .sorted(Comparator.comparingInt(
+                                        tjPdfVO -> tjPdfVO.getProName().length() // 鏍规嵁鍚嶅瓧鐨勯暱搴︽帓搴�
+                                ))
+                                .collect(Collectors.toList());
                     parent.put("sons", dels);
                     parent.put("remark", remark.getRemark());
                     parent.put("jgbx", remark.getJgbx());
@@ -1052,7 +1607,7 @@
     @PostMapping ("/checkUpdateOrderRemark")
     @ApiOperation (value = "鎬绘淇敼澶囨敞鎺ュ彛")
     public AjaxResult checkUpdateOrderRemark(@RequestBody List<UpdateOrderRemarkVo> updateOrderRemarkVos) {
-        if (null != updateOrderRemarkVos && updateOrderRemarkVos.size() > 0) {
+        if (null != updateOrderRemarkVos && !updateOrderRemarkVos.isEmpty()) {
             for (UpdateOrderRemarkVo remarkVo : updateOrderRemarkVos) {
                 LambdaQueryWrapper<TjOrderRemark> wqm = new LambdaQueryWrapper<>();
                 wqm.eq(TjOrderRemark::getTjNumber, remarkVo.getTjNumber());
@@ -1102,4 +1657,184 @@
         return AjaxResult.success(map);
     }
 
+
+
+    @GetMapping ("/getzongjianyishengchakanyichangxiangmu")
+    @ApiOperation (value = "鎬绘鏌ョ湅寮傚父椤圭洰鎺ュ彛")
+    public AjaxResult getzongjianyishengchakanyichangxiangmu(@RequestParam String tjNum) {
+        if (StrUtil.isNotBlank(tjNum)) {
+            TjOrder one = orderService.getOrderByTjNum(tjNum);
+
+            if (one == null) {
+                return AjaxResult.error("鏆傛棤鏁版嵁锛侊紒");
+            }
+
+        LambdaQueryWrapper<TjOrderYcxm> wq=new LambdaQueryWrapper<>();
+        wq.eq(TjOrderYcxm::getTjh,tjNum);
+        List<TjOrderYcxm> list = ycxmService.list(wq);
+        if(null !=list && !list.isEmpty()){
+            Collections.reverse(list);
+            Map<String, List<TjOrderYcxm>> map = list.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName));
+            List<Map<String, Object>> maps = new ArrayList<>();
+            for (Map.Entry<String, List<TjOrderYcxm>> entry : map.entrySet()) {
+                Map<String, Object> parent = new HashMap<>();
+                List<TjOrderDetail> dels = new ArrayList<>();
+                for (TjOrderYcxm ycxm : entry.getValue()) {
+                    TjOrderDetail detail=new TjOrderDetail();
+                    detail.setOrderDetailId(Long.valueOf(ycxm.getId()));
+                    detail.setProName(ycxm.getJcxm());
+                    detail.setProResult(ycxm.getJcjg());
+                    detail.setStanId(ycxm.getCkfw());
+                    detail.setProAdvice(ycxm.getDw());
+                    List<Map<String,Object>> btnrlist=new ArrayList<>();
+                    String jynr = ycxm.getJynr();
+                    JSONArray array = JSONUtil.parseArray(jynr);
+                    for (Object object : array) {
+                        Map<String,Object> objectMap=new HashMap<>();
+                        JSONObject jsonObject = (JSONObject) object;
+                        String bt = jsonObject.getStr("bt");
+                        String nr = jsonObject.getStr("nr");
+                        objectMap.put("bt",bt);
+                        objectMap.put("nr",nr);
+                        if(null !=bt || null !=nr) btnrlist.add(objectMap);
+                    }
+                    detail.setAdvices(btnrlist);
+                    dels.add(detail);
+                }
+
+                    parent.put("proName",entry.getKey());
+                    parent.put("jyjc",entry.getValue().get(0).getJyjc());
+                    parent.put("sone",dels);
+                    maps.add(parent);
+            }
+            List<Map<String, Object>> mapList = zongjianyishengchakanyichangxiangmu(tjNum);
+
+
+            List<Map<String, Object>> collect = mapList.stream()
+                    .filter(b -> maps.stream()
+                            .noneMatch(a -> a.get("proName").equals(b.get("proName"))))  // 杩囨护鎺夊湪 maps 涓瓨鍦ㄧ殑鐩稿悓鍏冪礌
+                    .collect(Collectors.toList());
+            if(!collect.isEmpty()){
+                maps.addAll(collect);
+            }
+            if(!maps.isEmpty()){
+                List<Map<String, Object>> collect1 = maps.stream()
+                        .sorted((map1, map2) -> map2.get("proName").toString().compareTo(map1.get("proName").toString()))
+                        .collect(Collectors.toList());
+                return AjaxResult.success(collect1);
+            }
+           return AjaxResult.success(maps);
+        }else {
+            List<Map<String, Object>> mapList = zongjianyishengchakanyichangxiangmu(tjNum);
+//            if(mapList.isEmpty()){
+//                return AjaxResult.success("鏆傛棤鏁版嵁");
+//            }
+            return AjaxResult.success(mapList);
+        }
+
+//            return zongjianyishengchakanyichangxiangmu(tjNum);
+        }
+        return AjaxResult.error();
+    }
+
+    @GetMapping ("/delzongjianyishengchakanyichangxiangmu")
+    @ApiOperation (value = "鎬绘鍒犻櫎寮傚父椤圭洰鎺ュ彛")
+    public AjaxResult delzongjianyishengchakanyichangxiangmu(@RequestParam String id) {
+        ycxmService.removeById(id);
+        return AjaxResult.success();
+    }
+
+    private List<Map<String, Object>> zongjianyishengchakanyichangxiangmu(String tjNumber) {
+//        asyncService.updateCheckType(tjNumber);
+
+        List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber);
+        List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber);
+        List<Map<String, Object>> list = new ArrayList<>();
+        if (null != remarkList && !remarkList.isEmpty()) {
+            for (TjOrderRemark remark : remarkList) {
+                Map<String, Object> parent = new HashMap<>();
+                if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) {
+                    List<TjOrderDetail> dels = new ArrayList<>();
+                    for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
+                        if (remark.getProsId().equals(tjOrderDetail.getProsId())) {
+                            if(null !=tjOrderDetail.getProId()&& null !=tjOrderDetail.getYcbz()){
+                                if(!tjOrderDetail.getDeptId().equals("2")){
+                                    List<Map<String,Object>> maps= rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString()
+                                            ,"",tjOrderDetail.getYcbz().replaceAll(" ", ""),tjNumber
+                                            ,tjOrderDetail.getProName().replaceAll("[锛�(][^锛�)]*[锛�)]", "")
+                                                    .replaceAll("[ 娴嬪畾妫�娴媇","")
+                                            ,tjOrderDetail.getProResult());
+                                    if(null !=maps && !maps.isEmpty()){
+                                        tjOrderDetail.setAdvices(maps);
+                                    }
+                                }else {
+                                    String[] split = tjOrderDetail.getProResult().split("銆倈,|锛�");
+                                    List<Map<String,Object>> mapList=new ArrayList<>();
+                                    for (String s : split) {
+                                                s = s.replaceAll("\n", "");
+//                                        Map<String,Object> maps= rulesService.getyichangxiangmujianyiguizeJianCha(s);
+                                        Map<String,Object> maps= tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(),s,"0");
+                                        if(null !=maps && !maps.isEmpty()){
+                                            Object bt = maps.get("bt");
+                                            Object nr = maps.get("nr");
+                                            if(null !=bt || null !=nr) mapList.add(maps);
+                                        }
+                                    }
+                                    tjOrderDetail.setAdvices(mapList);
+                                }
+
+                            }
+
+                            dels.add(tjOrderDetail);
+                        }
+                    }
+                    if(!dels.isEmpty()){
+                        parent.put("proName",remark.getProName());
+                        parent.put("jyjc",remark.getJyjc());
+                        parent.put("sone",dels);
+                        list.add(parent);
+                    }
+                }
+            }
+
+        }
+        return list;
+    }
+
+    @GetMapping ("/chushenyemianchakanxiangmujieguo")
+    @ApiOperation (value = "鍒濆椤甸潰鏌ョ湅椤圭洰缁撴灉鎺ュ彛")
+    public AjaxResult chushenyemianchakanxiangmujieguo(@RequestParam String proId,@RequestParam String tjNum) {
+        List<Map<String,Object>> maps = projectService.tjCsXmjgcx(tjNum,proId);
+        return AjaxResult.success(maps);
+    }
+
+    @GetMapping ("/panduaniscunzaiweijian")
+    @ApiOperation (value = "鍒濆椤甸潰鏌ョ湅椤圭洰鍓嶅垽鏂槸鍚﹀叏閮ㄦ湭妫�鎺ュ彛")
+    public AjaxResult panduaniscunzaiweijian(@RequestParam String tjNum) {
+        int a = orderRemarkService.panduaniscunzaiweijian(tjNum);
+        return AjaxResult.success(a);
+    }
+
+
+    @PostMapping ("/addOrderYcXmByTjh")
+    @ApiOperation (value = "鎬绘鍖荤敓椤甸潰鏂板寮傚父椤圭洰寤鸿")
+    public AjaxResult addOrderYcXmJyByTjh(@RequestBody List<TjOrderYcxm> ycxms) {
+        if(null !=ycxms && !ycxms.isEmpty()){
+            String tjh = ycxms.get(0).getTjh();
+            if(StringUtils.isNotBlank(tjh)){
+                ycxmService.delOrderYcXmJyByTjh(tjh);
+
+                for (TjOrderYcxm ycxm : ycxms) {
+                    ycxm.setJynr(JSONUtil.toJsonStr(ycxm.getMap()));
+                }
+//                List<TjOrderYcxm> collect = ycxms.stream().distinct().collect(Collectors.toList());
+                ycxmService.saveBatch(ycxms);
+                return AjaxResult.success();
+            }
+        }
+        return AjaxResult.success();
+    }
+
+
+
 }

--
Gitblit v1.8.0