From b57c0f8b28c5cfbf66986f7e73cf3d1f601bc60e Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期四, 20 三月 2025 14:34:37 +0800
Subject: [PATCH] zjh20250320

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java |  418 ++++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 353 insertions(+), 65 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 99b3545..e64e858 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
@@ -37,6 +37,7 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import jodd.util.StringUtil;
 import lombok.extern.slf4j.Slf4j;
 import lombok.var;
 import org.aspectj.weaver.AjAttribute;
@@ -49,6 +50,7 @@
 
 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;
@@ -56,6 +58,8 @@
 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: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃/璧典匠璞�
@@ -122,6 +126,14 @@
     private RedissonClient redissonClient;
     @Autowired
     private ITjRulesService rulesService;
+    @Autowired
+    private ITjProAdvicerulesService tjProAdvicerulesService;
+    @Autowired
+    private TjOrderYcxmService ycxmService;
+    @Autowired
+    private SysConfigController configController;
+    @Autowired
+    private TjJcycxmService jcycxmService;
 
 
     @GetMapping ("/ceshicc")
@@ -200,6 +212,7 @@
                                 @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 tcm,
                                 @ApiParam (value = "寮�濮嬫椂闂�") @RequestParam (required = false) String beginTime,
                                 @ApiParam (value = "缁撴潫鏃堕棿") @RequestParam (required = false) String endTime) {
 
@@ -285,7 +298,8 @@
         if (name == null) name = "";
         if (beginTime == null) beginTime = "";
         if (endTime == null) endTime = "";
-        return AjaxResult.success(orderService.getCsCunChuGuoChengCustomerList(tjNumber, page, pageSize, checkStatus, value, beginTime, endTime, name));
+        if (tcm == null) tcm = "";
+        return AjaxResult.success(orderService.getCsCunChuGuoChengCustomerList(tjNumber, page, pageSize, checkStatus, value, beginTime, endTime, name,tcm));
     }
 
 
@@ -392,7 +406,7 @@
     @RepeatSubmit
 //    @Transactional
     public AjaxResult dataSynchronization(@RequestParam String tjNumber) {
-
+        String dqyyyqbm = configService.selectConfigByKey("dqyyyqbm");
         RLock lock = redissonClient.getLock("lock:check:dataSynchronization:" + tjNumber);
         try {
             boolean tryLock = lock.tryLock(3L, TimeUnit.SECONDS);
@@ -553,7 +567,7 @@
                             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");
@@ -561,7 +575,15 @@
 
 
                             /*鍚屾妫�鏌� his瀛樺偍杩囩▼*/
-                            AjaxResult results = jcsqdService.getTjJcProByHisCall("浣撴涓績", order.getCardId(), "''", 100, 1, "'1'");
+
+                            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();
@@ -649,7 +671,7 @@
                         return AjaxResult.success("鍚屾鎴愬姛");
                     }
                     else if(null !=sfkqdshitulianjie && sfkqdshitulianjie.equalsIgnoreCase("Y")){
-                        List<LtkjHysqd> hysqdList = testMapper.getCcXZxYyLtkjHysqdByLisVi(order.getTjNumber());
+                        List<LtkjHysqd> hysqdList = testMapper.getCcXZxYyLtkjHysqdByLisVi(order.getTjNumber(),dqyyyqbm);
                         if(null != hysqdList && !hysqdList.isEmpty()){
                             for (LtkjHysqd hysqd : hysqdList) {
                                 LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(hysqd.getTjh(),hysqd.getTmh());
@@ -664,7 +686,7 @@
                             }
                             DynamicDataSourceContextHolder.clearDataSourceType();
                         }
-                        List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(order.getTjNumber());
+                        List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(order.getTjNumber(),dqyyyqbm);
                         if(null !=jcsqdList && !jcsqdList.isEmpty()){
                             jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId());
                             jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId());
@@ -715,7 +737,7 @@
                 String doctorId = configService.selectConfigByKey("request_default_check_doctorId");
                 //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12
                 final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
-
+                String dqyyyqbm = configService.selectConfigByKey("dqyyyqbm");
                 final String sfkqdyhis = configService.selectConfigByKey("sfkqdyhis");
                 TjOrder order = orderService.getOrderByTjNum(tjNumber);
                 if (null != order) {
@@ -724,17 +746,21 @@
                     if ("Y".equals(getInfoFromSqlData)) {
                         tbhyxm(order);
                         //鍚屾鍖栭獙椤圭洰
-                        testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId);
+//                        testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId);
                         //鍚屾妫�鏌ラ」鐩�
-                        testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId);
+//                        testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId);
                         asyncService.updateCheckType(order.getTjNumber());
 
                     }
+                    // 11:42:04.617 [http-nio-5000-exec-72] ERROR c.a.d.p.DruidDataSource - [init,905] - init datasource error, url: jdbc:sqlserver://192.168.10.2:1433;DatabaseName=hospital;&characterEncoding=utf8
+                    //com.microsoft.sqlserver.jdbc.SQLServerException: 椹卞姩绋嬪簭鏃犳硶閫氳繃浣跨敤瀹夊叏濂楁帴瀛楀眰(SSL)鍔犲瘑涓� SQL Server 寤虹珛瀹夊叏杩炴帴銆傞敊璇�:鈥淣o appropriate protocol (protocol is disabled or cipher suites are inappropriate)鈥濄��
+                    //
                     //寮�鍚拰his瀵规帴
                     if (null != sfkqdyhis && sfkqdyhis.equals("Y")) {
                         List<String> baoGaoDans = ltkjHybgdService.getJianYanBaoGaoDan(order.getCardId());
                         List<String> jianChaBaoGaoDan = ltkjHybgdService.getJianChaBaoGaoDan(order.getCardId());
                         //鍚屾妫�楠�
+                        String resultMsg = "";
                         if (null != baoGaoDans && !baoGaoDans.isEmpty()) {
                             Date dates = new Date();
                             Map<String, Object> map = new HashMap<>();
@@ -749,43 +775,53 @@
                             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);
+//                            if (null == code || !code.equals("0")) {
+//                                return AjaxResult.error("鍖栭獙椤圭洰鏆傛椂鏈嚭缁撴灉,璇风◢鍚庡悓姝�!!!");
+//                            }
+                            if(null != code && code.equals("0")) {
+                                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());
+                                    }
+                                    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);
+                                    }
                                 }
+                            }else{
+                                resultMsg = "鍖栭獙椤圭洰鏆傛椂鏈嚭缁撴灉,璇风◢鍚庡悓姝�!!!";
                             }
                             //鍚屾鍖栭獙椤圭洰
                             testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId);
                         }
                         /*鍚屾妫�鏌� his鎺ュ彛*/
-                        if (null != jianChaBaoGaoDan && jianChaBaoGaoDan.size() > 0) {
+                        if (null != jianChaBaoGaoDan && !jianChaBaoGaoDan.isEmpty()) {
                             Map<String, Object> maps = new HashMap<>();
                             maps.put("his_registration_id", order.getCardId());
                             maps.put("ksbm", "浣撴涓績");
@@ -795,8 +831,14 @@
                             lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Getexamreportinfo");
                             HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper);
                             /*鍚屾妫�鏌� his瀛樺偍杩囩▼*/
-                            AjaxResult results = jcsqdService.getTjJcProByHisCall("浣撴涓績", order.getCardId(), "''", 100, 1, "'1'");
-                            DynamicDataSourceContextHolder.clearDataSourceType();
+                            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");
@@ -837,28 +879,56 @@
                                             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());
+                        /*            List<LtkjExamJcsqd> jcsqdList = jcsqdService.getLtkjJcsqdByTjh(order.getCardId());
+                                    if(null !=jcsqdList && !jcsqdList.isEmpty()) {
+                                        for (LtkjExamJcsqd jcsqd : jcsqdList) {
+                                            if (StringUtil.isNotBlank(jcsqd.getJgzt())) {
+                                                String[] split = jcsqd.getJgzt().replaceAll("\n", "").split("銆倈锛泑;");
+                                                for (String jg : split) {
+                                                    if (StringUtil.isNotBlank(jg) && !jg.contains("鏈寮傚父")
+                                                            && !jg.contains("鏈鏄庢樉寮傚父") && !jg.contains("鏈鍗犱綅") && !jg.contains("鏈")
+                                                            && !jg.contains("鏈鏄庢樉") && !jg.contains("姝e父") && !jg.contains("鍙屼晶妞庨棿瀛旀棤鐙獎")) {
+                                                        TjJcycxm jcycxm = new TjJcycxm();
+                                                        jcycxm.setTjh(order.getTjNumber());
+                                                        jcycxm.setYqid(dqyyyqbm);
+                                                        String[] split1 = jcsqd.getJcxmid().split(";");
+                                                        jcycxm.setProId(split1[0]);
+                                                        jcycxm.setProName(jcsqd.getJcxmmc());
+                                                        jcycxm.setCreateTime(new Date());
+                                                        jcycxm.setJcjg(jg);
+                                                        jcycxmService.save(jcycxm);
+                                                    }
+                                                }
+                                            }
+                                        }
+                                    }*/
                                     testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId);
                                 }else {
-                                    return AjaxResult.error("妫�鏌ラ」鐩殏鏃舵湭鍑虹粨鏋�,璇风◢鍚庡悓姝�!!!");
+//                                    return AjaxResult.error("妫�鏌ラ」鐩殏鏃舵湭鍑虹粨鏋�,璇风◢鍚庡悓姝�!!!");
+                                    resultMsg+="\n妫�鏌ラ」鐩殏鏃舵湭鍑虹粨鏋�,璇风◢鍚庡悓姝�!!!";
                                 }
                             }
                         }
-                        return AjaxResult.success("鍚屾鎴愬姛");
+                        if (StrUtil.isBlank(resultMsg))
+                            return AjaxResult.success("鍚屾鎴愬姛");
+                        else return AjaxResult.error(resultMsg);
                     }
                     //鍖栭獙
-                    testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId);
+//                    testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId);
                     //妫�鏌�
-                    jcsqdService.saveLtkjExamJcsqd(order.getCardId());
+//                    jcsqdService.saveLtkjExamJcsqd(order.getCardId());
                     return AjaxResult.success("鍚屾鎴愬姛");
                 }
                 return AjaxResult.error("鏈煡鍒拌浜哄憳浣撴璁板綍");
             }
             return AjaxResult.error("璇ヤ汉鍛樻暟鎹鍦ㄥ悓姝ヤ腑锛岃绋嶇瓑");
         } catch (InterruptedException e) {
-            e.printStackTrace();
+            log.error(String.valueOf(e),e.getMessage());
             return AjaxResult.error("璇ヤ汉鍛樻暟鎹鍦ㄥ悓姝ヤ腑锛岃绋嶇瓑");
         } finally {
             lock.unlock();
@@ -900,6 +970,7 @@
                 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);
@@ -954,7 +1025,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());
@@ -963,7 +1034,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();
@@ -1529,7 +1600,9 @@
                                 tjOrderDetail.setProResult(tjOrderDetail.getProResult());
                             }
 
-                            dels.add(tjOrderDetail);
+                            if(remark.getOrgType().equals(tjOrderDetail.getOrgType())){
+                                dels.add(tjOrderDetail);
+                            }
                         }
                     }
                     String summary = remark.getSummary();
@@ -1542,6 +1615,12 @@
                     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());
@@ -1575,7 +1654,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());
@@ -1630,19 +1709,96 @@
     @GetMapping ("/getzongjianyishengchakanyichangxiangmu")
     @ApiOperation (value = "鎬绘鏌ョ湅寮傚父椤圭洰鎺ュ彛")
     public AjaxResult getzongjianyishengchakanyichangxiangmu(@RequestParam String tjNum) {
+        long l = System.currentTimeMillis();
         if (StrUtil.isNotBlank(tjNum)) {
-            return zongjianyishengchakanyichangxiangmu(tjNum);
+            TjOrder one = orderService.getOrderByTjNum(tjNum);
+
+            if (one == null) {
+                return AjaxResult.error("鏆傛棤鏁版嵁锛侊紒");
+            }
+            String yqbm = configService.selectConfigByKey("common_api_service_hospbm");
+            jcycxmService.deletedByTjh(tjNum);
+            configController.zongjianshengchengyichangxiangmu(tjNum,yqbm);
+
+        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());
+                System.out.println("鎬昏�楁椂:"+(System.currentTimeMillis()-l));
+                return AjaxResult.success(collect1);
+            }
+            System.out.println("鎬昏�楁椂:"+(System.currentTimeMillis()-l));
+
+            return AjaxResult.success(maps);
+        }else {
+            List<Map<String, Object>> mapList = zongjianyishengchakanyichangxiangmu(tjNum);
+            System.out.println("鎬昏�楁椂:"+(System.currentTimeMillis()-l));
+            return AjaxResult.success(mapList);
+        }
+
+//            return zongjianyishengchakanyichangxiangmu(tjNum);
         }
         return AjaxResult.error();
     }
 
-    private AjaxResult zongjianyishengchakanyichangxiangmu(String tjNumber) {
-//        asyncService.updateCheckType(tjNumber);
-        TjOrder one = orderService.getOrderByTjNum(tjNumber);
+    @GetMapping ("/delzongjianyishengchakanyichangxiangmu")
+    @ApiOperation (value = "鎬绘鍒犻櫎寮傚父椤圭洰鎺ュ彛")
+    public AjaxResult delzongjianyishengchakanyichangxiangmu(@RequestParam String id) {
+        ycxmService.removeById(id);
+        return AjaxResult.success();
+    }
 
-        if (one == null) {
-            return AjaxResult.error("鏆傛棤鏁版嵁锛侊紒");
-        }
+    /*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<>();
@@ -1654,10 +1810,31 @@
                     for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
                         if (remark.getProsId().equals(tjOrderDetail.getProsId())) {
                             if(null !=tjOrderDetail.getProId()&& null !=tjOrderDetail.getYcbz()){
-                                List<Map<String,Object>> maps= rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString(),"",tjOrderDetail.getYcbz(),tjNumber);
-                                if(null !=maps && !maps.isEmpty()){
-                                    tjOrderDetail.setAdvices(maps);
+                                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);
@@ -1669,13 +1846,73 @@
                         parent.put("sone",dels);
                         list.add(parent);
                     }
-                } else {
-                    return AjaxResult.success("璇ヤ汉鍛樻棤寮傚父椤圭洰");
                 }
             }
-            return AjaxResult.success(list);
+
         }
-        return AjaxResult.success("璇ヤ汉鍛樻病鏈変綋妫�椤圭洰鏁版嵁锛�");
+        return list;
+    }*/
+
+    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.getProName().replaceAll("[锛�(][^锛�)]*[锛�)]", "")
+                                                    .replaceAll("[ 娴嬪畾妫�娴� 鈼哴","").replaceAll("\\[.*?\\]", "")
+                                            ,tjOrderDetail.getYcbz().replaceAll(" ", ""),tjNumber
+                                            ,tjOrderDetail.getProName().replaceAll("[锛�(][^锛�)]*[\u4e00-\u9fa5]+[^锛�)]*[锛�)]", "")
+                                                    .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")
@@ -1693,5 +1930,56 @@
     }
 
 
+    @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();
+    }
+
+
+
+
+    /**
+     * 鍚屾sql server鏁版嵁鍒版湰鍦版暟鎹簱鏁版嵁鎺ュ彛
+     */
+    @GetMapping ("/newdataSynchronization")
+    @ApiOperation (value = "鏈�鏂板叕鍏卞悓姝ql server鏁版嵁鍒版湰鍦版暟鎹簱鏁版嵁鎺ュ彛")
+    @RepeatSubmit
+    public AjaxResult newdataSynchronization(@RequestParam String tjNumber) {
+        try {
+            //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12
+            final String sfkqdyhis = configService.selectConfigByKey("sfkqdyhis");
+            TjOrder order = orderService.getOrderByTjNum(tjNumber);
+            if (null != order) {
+                if (null != sfkqdyhis && sfkqdyhis.equals("Y")) {
+                    dataSynchronizationApi(tjNumber);
+                }else {
+                    configController.shoudongtbjyjcwsxmjg("jyjc",tjNumber);
+                }
+                return AjaxResult.success("鍚屾鎴愬姛");
+            }
+            return AjaxResult.error("鏈煡鍒拌浜哄憳浣撴璁板綍");
+        } catch (Exception e) {
+//            throw new RuntimeException(ex);
+            log.error(String.valueOf(e),e.getMessage());
+            return AjaxResult.error("璇ヤ汉鍛樻暟鎹鍦ㄥ悓姝ヤ腑锛岃绋嶇瓑");
+        }
+    }
+
+
+
 
 }

--
Gitblit v1.8.0