From 9155df2aeab5b0d95c89dd928dbaefbfbaeae9d1 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期四, 05 九月 2024 17:10:35 +0800
Subject: [PATCH] zjh 2024-09-05

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java |  900 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 802 insertions(+), 98 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 9652d00..2b3d4ca 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,10 +1,17 @@
 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;
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.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;
 import com.ltkj.common.core.domain.AjaxResult;
 import com.ltkj.common.core.domain.entity.SysUser;
 import com.ltkj.common.core.redis.RedisCache;
@@ -12,6 +19,7 @@
 import com.ltkj.common.utils.SecurityUtils;
 import com.ltkj.common.utils.StringUtils;
 import com.ltkj.framework.config.MatchUtils;
+import com.ltkj.framework.config.UserHoder;
 import com.ltkj.framework.datasource.DynamicDataSourceContextHolder;
 import com.ltkj.hosp.domain.*;
 import com.ltkj.hosp.mapper.TestMapper;
@@ -23,9 +31,13 @@
 import com.ltkj.system.service.ISysConfigService;
 import com.ltkj.system.service.ISysDeptService;
 import com.ltkj.system.service.ISysUserService;
+import com.ltkj.web.controller.his.HisApiGetMethodService;
+import com.ltkj.web.controller.his.HisApiMethodService;
 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.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -33,18 +45,22 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.util.*;
 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;
 
 /**
  * @Author: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃/璧典匠璞�
  * @Date: 2022/12/6 14:29
  */
 @RestController
-@RequestMapping("/check")
-@Api(tags = "鎬绘鍖诲笀鐩稿叧鎺ュ彛")
+@RequestMapping ("/check")
+@Api (tags = "鎬绘鍖诲笀鐩稿叧鎺ュ彛")
+@Slf4j
 public class TjCheckController {
     @Resource
     private ITjOrderService orderService;
@@ -85,18 +101,23 @@
     @Resource
     private LtkjMiddleHeadService headService;
     @Resource
-    private LtkjExamJcbgdService ltkjExamJcbgdService;
+    private LtkjExamJcbgdService jcbgdService;
     @Resource
-    private LtkjExamJcsqdService ltkjExamJcsqdService;
+    private LtkjExamJcsqdService jcsqdService;
     @Resource
     private LtkjHybgdService ltkjHybgdService;
     @Resource
     private LtkjHysqdService ltkjHysqdService;
+    @Autowired
+    private HisApiMethodService controller;
+    @Autowired
+    private HisApiGetMethodService service;
+    @Autowired
+    private HisApiConfigService hisApiConfigService;
 
-
-    @GetMapping("/getOperationPermissionsByTjNum")
-    @ApiOperation(value = "(鍒濆椤甸潰  鍜� 鍖荤敓椤甸潰)鏍规嵁浣撴鍙疯幏鍙栨槸鍚﹀彲鎿嶄綔鏉冮檺鎺ュ彛  true鍙搷浣�  鍙嶄箣涓嶅彲")
-    public AjaxResult getOperationPermissionsByTjNum(@ApiParam(value = "浣撴鍙�") @RequestParam String tjNumber) {
+    @GetMapping ("/getOperationPermissionsByTjNum")
+    @ApiOperation (value = "(鍒濆椤甸潰  鍜� 鍖荤敓椤甸潰)鏍规嵁浣撴鍙疯幏鍙栨槸鍚﹀彲鎿嶄綔鏉冮檺鎺ュ彛  true鍙搷浣�  鍙嶄箣涓嶅彲")
+    public AjaxResult getOperationPermissionsByTjNum(@ApiParam (value = "浣撴鍙�") @RequestParam String tjNumber) {
         TjOrder order = orderService.getOrderByTjNum(tjNumber);
         if (null != order) {
             Integer status = order.getStatus();
@@ -111,17 +132,17 @@
     }
 
 
-    @GetMapping("/getCsList")
-    @ApiOperation(value = "鍒濆鏌ヨ浣撴璁板綍瀹㈡埛鍒楄〃")//0寰�1宸�
+    @GetMapping ("/getCsList")
+    @ApiOperation (value = "鍒濆鏌ヨ浣撴璁板綍瀹㈡埛鍒楄〃")//0寰�1宸�
     @Transactional
-    public AjaxResult getCsList(@ApiParam(value = "瀹℃牳鐘舵��  0寰呭鏍�  1宸插鏍�") @RequestParam(required = false) Integer checkStatus,
-                                @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) {
+    public AjaxResult getCsList(@ApiParam (value = "瀹℃牳鐘舵��  0寰呭鏍�  1宸插鏍�") @RequestParam (required = false) Integer checkStatus,
+                                @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) {
 
 //        DateTime beginTimes = null;
 //        DateTime endTimes = null;
@@ -212,9 +233,9 @@
     /**
      * 鍒濆
      */
-    @GetMapping("/cSWebGetProByTjNumAndOrderId")
-    @ApiOperation(value = "(鍒濆椤甸潰)鐐瑰嚮浣撴浜哄憳灞曠ず浣撴椤圭洰鎺ュ彛")
-    public AjaxResult cSWebGetProByTjNumAndOrderId(@ApiParam(value = "浣撴鍙�") @RequestParam String tjNumber) {
+    @GetMapping ("/cSWebGetProByTjNumAndOrderId")
+    @ApiOperation (value = "(鍒濆椤甸潰)鐐瑰嚮浣撴浜哄憳灞曠ず浣撴椤圭洰鎺ュ彛")
+    public AjaxResult cSWebGetProByTjNumAndOrderId(@ApiParam (value = "浣撴鍙�") @RequestParam String tjNumber) {
 //        List<TjOrderRemark> orderRemarkList = orderRemarkService.getTjOrderRemarkListByTjNum(tjNumber);
 //        List<CsProVo> list = new ArrayList<>();
 //        if (null != orderRemarkList && orderRemarkList.size() > 0) {
@@ -259,27 +280,25 @@
     /**
      * 鍒濆
      */
-    @GetMapping("/confirmOrder")
-    @ApiOperation(value = "鍒濆(骞朵慨鏀圭姸鎬�)鎺ュ彛")
+    @GetMapping ("/confirmOrder")
+    @ApiOperation (value = "鍒濆(骞朵慨鏀圭姸鎬�)鎺ュ彛")
     @Transactional
-    public AjaxResult confirmOrder(@ApiParam(value = "tjNumber") @RequestParam String tjNumber,
-                                   @ApiParam(value = "鐘舵�� 0鍚屾剰 1鎷掔粷 榛樿鍚屾剰") @RequestParam(defaultValue = "0") Integer status,
-                                   @ApiParam(value = "椹冲洖鐞嗙敱") @RequestParam(required = false) String remark) {
+    public AjaxResult confirmOrder(@ApiParam (value = "tjNumber") @RequestParam String tjNumber,
+                                   @ApiParam (value = "鐘舵�� 0鍚屾剰 1鎷掔粷 榛樿鍚屾剰") @RequestParam (defaultValue = "0") Integer status,
+                                   @ApiParam (value = "椹冲洖鐞嗙敱") @RequestParam (required = false) String remark) {
         int num = orderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
-        if (num > 0) return AjaxResult.error("鏈夊欢鏈熼」鐩殏涓嶈兘瀹℃牳!");
+        if (num > 0) return AjaxResult.error("璇锋鏌ユ槸鍚﹀瓨鍦ㄦ湭妫�鎴栧欢鏈熼」鐩�");
         if (null != tjNumber) {
             Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
             SysUser sysUser = userService.getById(userId);
-            LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
-            wq1.eq(TjOrder::getTjNumber, tjNumber);
-            TjOrder tjOrder = orderService.getOne(wq1);
+            TjOrder tjOrder = orderService.getOrderByTjNum(tjNumber);
             if (null != tjOrder) {
                 tjOrder.setConfirmTime(new DateTime());
                 tjOrder.setConfirmDoctor(sysUser.getNickName());
-                tjOrder.setConfirmStatus(remark);
+                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);
                 }
@@ -289,8 +308,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("鎿嶄綔澶辫触");
@@ -304,62 +323,535 @@
     /**
      * 鍚屾sql server鏁版嵁鍒版湰鍦版暟鎹簱鏁版嵁鎺ュ彛
      */
-    @GetMapping("/dataSynchronization")
-    @ApiOperation(value = "鍚屾sql server鏁版嵁鍒版湰鍦版暟鎹簱鏁版嵁鎺ュ彛")
+    @GetMapping ("/dataSynchronization")
+    @ApiOperation (value = "鍚屾sql server鏁版嵁鍒版湰鍦版暟鎹簱鏁版嵁鎺ュ彛")
+    @RepeatSubmit
+//    @Transactional
     public AjaxResult dataSynchronization(@RequestParam String tjNumber) {
+
         //鏍规嵁閰嶇疆璋冨彇瀛樺偍杩囩▼ 灏嗕复鏃惰〃鏁版嵁瀛樺叆棰勭害琛�2023.12.12
         final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
-        if ("Y".equals(getInfoFromSqlData)) {
-            List<LtkjHysqd> one = testMapper.getHysqdByTmh(tjNumber);
-            if (one != null) {
-                DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
-                ltkjHysqdService.saveBatch(one);
-                DynamicDataSourceContextHolder.clearDataSourceType();
-                for (LtkjHysqd ltkjHysqd : one) {
+
+        final String sfkqdyhis = configService.selectConfigByKey("sfkqdyhis");
+        TjOrder order = orderService.getOrderByTjNum(tjNumber);
+        if (null != order) {
+
+            //寮�鍚瓧鍏稿脊绐�
+            if ("Y".equals(getInfoFromSqlData)) {
+                tbhyxm(order);
+                //                List<LtkjExamJcsqd> one2 = testMapper.getExamJcsqdTmh(tjNumber);
+//                if (one2 != null && one2.size() > 0) {
+//                    DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
+//                    ltkjExamJcsqdService.saveBatch(one2);
+//                    DynamicDataSourceContextHolder.clearDataSourceType();
+//                    for (LtkjExamJcsqd ltkjExamJcsqd : one2) {
+//                        List<LtkjExamJcbgd> one3 = testMapper.getExamJcbgdByTjh(ltkjExamJcsqd.getTmh());
+//                        if (one3 != null && one3.size() > 0) {
+//                            DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
+//                            ltkjExamJcbgdService.saveBatch(one3);
+//                            DynamicDataSourceContextHolder.clearDataSourceType();
+//                        }
+//                    }
+//                }
+                //鍚屾鍖栭獙椤圭洰
+                testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
+                //鍚屾妫�鏌ラ」鐩�
+                testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
+                asyncService.updateCheckType(order.getTjNumber());
+
+            }
+
+            //寮�鍚拰his瀵规帴
+            if (null != sfkqdyhis && sfkqdyhis.equals("Y")) {
+
+                List<String> baoGaoDans = ltkjHybgdService.getJianYanBaoGaoDan(order.getCardId());
+                List<String> jianChaBaoGaoDan = ltkjHybgdService.getJianChaBaoGaoDan(order.getCardId());
+                //鍚屾妫�楠�
+                if (null != baoGaoDans && baoGaoDans.size() > 0) {
+                    Date dates = new Date();
+                    Map<String, Object> map = new HashMap<>();
+                    map.put("his_registration_id", order.getCardId());
+                    map.put("ksbm", "");
+                    map.put("pationid", "");
+                    map.put("ksrq", DateUtil.format(DateUtil.beginOfDay(order.getCreateTime()), "yyyy-MM-dd HH:mm:ss"));
+                    map.put("jsrq", DateUtil.format(DateUtil.endOfDay(dates), "yyyy-MM-dd HH:mm:ss"));
+                    map.put("pagecount", 10);
+                    map.put("page", 1);
+                    AjaxResult result = controller.Getlabreportinfo(map);
+                    String result1 = getAjaxResult(result);
+                    JSONObject object = getJSONObject(result1);
+                    String code = object.getStr("ResultCode");
+                    if (null == code || !code.equals("0")) {
+                        return AjaxResult.error("鍖栭獙椤圭洰鏆傛椂鏈嚭缁撴灉,璇风◢鍚庡悓姝�!!!");
+                    }
+                    JSONArray data = object.getJSONArray("ResultData");
+
+                    for (Object datum : data) {
+                        JSONObject jsonObject = (JSONObject) datum;
+                        LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(order.getCardId(), jsonObject.getStr("JYBGID"));
+                        if (null != jybgid) {
+                            ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(order.getCardId(), jsonObject.getStr("JYBGID"));
+                            ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(jybgid.getTmh());
+                        }
+                        LtkjHysqd hysqd = new LtkjHysqd();
+                        hysqd.setTjh(order.getCardId());
+                        hysqd.setTmh(jsonObject.getStr("JYBGID"));
+                        hysqd.setBbbh(jsonObject.getStr("BBDM"));
+                        hysqd.setBbmc(jsonObject.getStr("BBMC"));
+                        hysqd.setXmid(jsonObject.getStr("JYXMDM"));
+                        hysqd.setXmmc(jsonObject.getStr("JYXMMC"));
+                        hysqd.setSqsj(jsonObject.getStr("SQRQ"));
+                        hysqd.setSqys(jsonObject.getStr("SQRBH"));
+                        hysqd.setJgsj(jsonObject.getStr("JYBGRQ"));
+                        hysqd.setSqrxm(jsonObject.getStr("SQRXM"));
+                        hysqd.setSqdh(jsonObject.getStr("SQDBH"));
+                        hysqd.setShrdm(jsonObject.getStr("JYYSBH"));
+                        hysqd.setShrxm(jsonObject.getStr("JYYSQM"));
+                        hysqd.setJybgjg(jsonObject.getStr("JYBGJG"));
+                        if (ltkjHysqdService.save(hysqd)) {
+                            Map<String, Object> hashMap = new HashMap<>();
+                            hashMap.put("jybgid", hysqd.getTmh());
+                            AjaxResult bgdres = controller.Getlabdetailinfo(hashMap);
+                            String result2 = getAjaxResult(bgdres);
+                            JSONObject object1 = getJSONObject(result2);
+                            String code1 = object1.getStr("ResultCode");
+                            if (null != code1 && code1.equals("0")) {
+                                JSONArray datas = object1.getJSONArray("ResultData");
+                                for (Object o : datas) {
+                                    JSONObject js = (JSONObject) o;
+//                            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);
+                                }
+                            }
+
+                        }
+                    }
+                    //鍚屾鍖栭獙椤圭洰
+                    testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
+                }
+
+                /*鍚屾妫�鏌� his鎺ュ彛*/
+                if (null != jianChaBaoGaoDan && jianChaBaoGaoDan.size() > 0) {
+                    Map<String, Object> maps = new HashMap<>();
+                    maps.put("his_registration_id", order.getCardId());
+                    maps.put("ksbm", "浣撴涓績");
+                    maps.put("pagecount", 100);
+                    maps.put("page", 1);
+//                    AjaxResult results = service.getHISDataNew("Getexamreportinfo", maps);
+
+                    LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+                    lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Getexamreportinfo");
+                    HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper);
+
+
+                    /*鍚屾妫�鏌� his瀛樺偍杩囩▼*/
+                    AjaxResult results = jcsqdService.getTjJcProByHisCall("浣撴涓績", order.getCardId(), "''", 100, 1, "'1'");
+                    DynamicDataSourceContextHolder.clearDataSourceType();
+
+                    log.info("妫�鏌ラ」鐩煡璇㈣繑鍥炲��:      " + results.toString());
+
+                    if (Integer.parseInt(results.get("code").toString()) == 200) {
+                        List<Map<String, Object>> datas = (List<Map<String, Object>>) results.get("data");
+                        if (null != datas && datas.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());
+                            testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
+                        }else {
+                            return AjaxResult.error("妫�鏌ラ」鐩殏鏃舵湭鍑虹粨鏋�,璇风◢鍚庡悓姝�!!!");
+                        }
+                    }
+                }
+
+
+                return AjaxResult.success("鍚屾鎴愬姛");
+
+
+                //鍚屾妫�鏌ラ」鐩粰redis缂撳瓨鐜板湪涓嶇敤浜�
+//                asyncService.updateCheckType(order.getTjNumber());
+            }
+            //鍖栭獙
+            testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
+            //妫�鏌�
+            jcsqdService.saveLtkjExamJcsqd(order.getCardId());
+            return AjaxResult.success("鍚屾鎴愬姛");
+        }
+        return AjaxResult.error("鏈煡鍒拌浜哄憳浣撴璁板綍");
+    }
+
+    /**
+     * 鍚屾sql server鏁版嵁鍒版湰鍦版暟鎹簱鏁版嵁鎺ュ彛
+     */
+    @GetMapping ("/dataSynchronizationApi")
+    @ApiOperation (value = "鍚屾sql server鏁版嵁鍒版湰鍦版暟鎹簱鏁版嵁鎺ュ彛")
+    @RepeatSubmit
+//    @Transactional
+    public AjaxResult dataSynchronizationApi(@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) {
+
+            //寮�鍚瓧鍏稿脊绐�
+            if ("Y".equals(getInfoFromSqlData)) {
+                tbhyxm(order);
+                //鍚屾鍖栭獙椤圭洰
+                testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), "148");
+                //鍚屾妫�鏌ラ」鐩�
+                testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), "148");
+                asyncService.updateCheckType(order.getTjNumber());
+
+            }
+            //寮�鍚拰his瀵规帴
+            if (null != sfkqdyhis && sfkqdyhis.equals("Y")) {
+                List<String> baoGaoDans = ltkjHybgdService.getJianYanBaoGaoDan(order.getCardId());
+                List<String> jianChaBaoGaoDan = ltkjHybgdService.getJianChaBaoGaoDan(order.getCardId());
+                //鍚屾妫�楠�
+                if (null != baoGaoDans && !baoGaoDans.isEmpty()) {
+                    Date dates = new Date();
+                    Map<String, Object> map = new HashMap<>();
+                    map.put("his_registration_id", order.getCardId());
+                    map.put("ksbm", "");
+                    map.put("pationid", "");
+                    map.put("ksrq", DateUtil.format(DateUtil.beginOfDay(order.getCreateTime()), "yyyy-MM-dd HH:mm:ss"));
+                    map.put("jsrq", DateUtil.format(DateUtil.endOfDay(dates), "yyyy-MM-dd HH:mm:ss"));
+                    map.put("pagecount", 10);
+                    map.put("page", 1);
+                    AjaxResult result = controller.Getlabreportinfo(map);
+                    String result1 = getAjaxResult(result);
+                    JSONObject object = getJSONObject(result1);
+                    String code = object.getStr("ResultCode");
+                    if (null == code || !code.equals("0")) {
+                        return AjaxResult.error("鍖栭獙椤圭洰鏆傛椂鏈嚭缁撴灉,璇风◢鍚庡悓姝�!!!");
+                    }
+                    JSONArray data = object.getJSONArray("ResultData");
+                    for (Object datum : data) {
+                        JSONObject jsonObject = (JSONObject) datum;
+                        boolean isInsertHysqd = false;
+                        LtkjHysqd hysqd = new LtkjHysqd();
+                        hysqd.setTjh(order.getCardId());
+                        hysqd.setTmh(jsonObject.getStr("JYBGID"));
+                        hysqd.setBbbh(jsonObject.getStr("BBDM"));
+                        hysqd.setBbmc(jsonObject.getStr("BBMC"));
+                        hysqd.setXmid(jsonObject.getStr("JYXMDM"));
+                        hysqd.setXmmc(jsonObject.getStr("JYXMMC"));
+                        hysqd.setSqsj(jsonObject.getStr("SQRQ"));
+                        hysqd.setSqys(jsonObject.getStr("SQRBH"));
+                        hysqd.setJgsj(jsonObject.getStr("JYBGRQ"));
+                        hysqd.setSqrxm(jsonObject.getStr("SQRXM"));
+                        hysqd.setSqdh(jsonObject.getStr("SQDBH"));
+                        hysqd.setShrdm(jsonObject.getStr("JYYSBH"));
+                        hysqd.setShrxm(jsonObject.getStr("JYYSQM"));
+                        hysqd.setJybgjg(jsonObject.getStr("JYBGJG"));
+                        QueryWrapper<LtkjHysqd> queryWrapper = new QueryWrapper<>(hysqd);
+                        List<LtkjHysqd> list = ltkjHysqdService.list(queryWrapper);
+                        if (list.isEmpty())
+                            isInsertHysqd = true;
+                        if (isInsertHysqd){
+                            saveHysqd(hysqd);
+                        }else {
+                            saveHybgd(hysqd);
+                        }
+                    }
+                    //鍚屾鍖栭獙椤圭洰
+                    testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), "148");
+                }
+                /*鍚屾妫�鏌� his鎺ュ彛*/
+                if (null != jianChaBaoGaoDan && jianChaBaoGaoDan.size() > 0) {
+                    Map<String, Object> maps = new HashMap<>();
+                    maps.put("his_registration_id", order.getCardId());
+                    maps.put("ksbm", "浣撴涓績");
+                    maps.put("pagecount", 100);
+                    maps.put("page", 1);
+                    LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+                    lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Getexamreportinfo");
+                    HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper);
+                    /*鍚屾妫�鏌� his瀛樺偍杩囩▼*/
+                    AjaxResult results = jcsqdService.getTjJcProByHisCall("浣撴涓績", order.getCardId(), "''", 100, 1, "'1'");
+                    DynamicDataSourceContextHolder.clearDataSourceType();
+                    log.info("妫�鏌ラ」鐩煡璇㈣繑鍥炲��:      " + results.toString());
+                    if (Integer.parseInt(results.get("code").toString()) == 200) {
+                        List<Map<String, Object>> datas = (List<Map<String, Object>>) results.get("data");
+                        if (null != datas && !datas.isEmpty()) {
+                            jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId());
+                            jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId());
+                            for (Map<String, Object> objectMap : datas) {
+                                //淇濆瓨鍏ュ弬鍑哄弬
+                                service.save(JSONUtil.parseObj(objectMap), "Getexamreportinfo", hisApiConfig, JSONUtil.toJsonStr(maps));
+                                LtkjExamJcbgd jcbgd = new LtkjExamJcbgd();
+                                jcbgd.setTjh(order.getCardId());
+                                if (null != objectMap.get("JCBGID") || !objectMap.get("JCBGID").equals(""))
+                                    jcbgd.setTmh(objectMap.get("JCBGID").toString());
+                                if (null != objectMap.get("JCXMDM") || !objectMap.get("JCXMDM").equals(""))
+                                    jcbgd.setXmdm(objectMap.get("JCXMDM").toString());
+                                if (null != objectMap.get("JCXMMC") || !objectMap.get("JCXMMC").equals(""))
+                                    jcbgd.setXmmc(objectMap.get("JCXMMC").toString());
+                                if (null != objectMap.get("JCXMJG") || !objectMap.get("JCXMJG").equals(""))
+                                    jcbgd.setBgNr(objectMap.get("JCXMJG").toString());
+                                if (null != objectMap.get("reporturl") || !objectMap.get("reporturl").equals(""))
+                                    jcbgd.setBgUrl(objectMap.get("reporturl").toString());
+                                if (null != objectMap.get("SHYSQM") || !objectMap.get("SHYSQM").equals(""))
+                                    jcbgd.setShysxm(objectMap.get("SHYSQM").toString());
+                                if (null != objectMap.get("SHYSBH") || !objectMap.get("SHYSBH").equals(""))
+                                    jcbgd.setShysdm(objectMap.get("SHYSBH").toString());
+                                if (null != objectMap.get("YXZD") || !objectMap.get("YXZD").equals(""))
+                                    jcbgd.setYxzd(objectMap.get("YXZD").toString());
+                                if (null != objectMap.get("YXBX") || !objectMap.get("YXBX").equals("")) {
+                                    if (objectMap.get("YXBX").toString().equals("null")) {
+                                        jcbgd.setYxbx("鏈寮傚父");
+                                    } else {
+                                        jcbgd.setYxbx(objectMap.get("YXBX").toString());
+                                    }
+                                }
+                                if (null != objectMap.get("SJJLSJ") || !objectMap.get("SJJLSJ").equals(""))
+                                    jcbgd.setZdsj(objectMap.get("SJJLSJ").toString());
+                                if (null != objectMap.get("JCBW") || !objectMap.get("JCBW").equals(""))
+                                    jcbgd.setJcbw(objectMap.get("JCBW").toString());
+                                if (null != objectMap.get("SQRQSJ") || !objectMap.get("SQRQSJ").equals(""))
+                                    jcbgd.setSqsj(objectMap.get("SQRQSJ").toString());
+                                jcbgdService.save(jcbgd);
+                            }
+                            jcsqdService.saveLtkjExamJcsqd(order.getCardId());
+                            testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), "148");
+                        }else {
+                            return AjaxResult.error("妫�鏌ラ」鐩殏鏃舵湭鍑虹粨鏋�,璇风◢鍚庡悓姝�!!!");
+                        }
+                    }
+                }
+                return AjaxResult.success("鍚屾鎴愬姛");
+            }
+            //鍖栭獙
+            testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), "148");
+            //妫�鏌�
+            jcsqdService.saveLtkjExamJcsqd(order.getCardId());
+            return AjaxResult.success("鍚屾鎴愬姛");
+        }
+        return AjaxResult.error("鏈煡鍒拌浜哄憳浣撴璁板綍");
+    }
+
+    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.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鏍煎紡
+    public JSONObject getJSONObject(String builder) {
+        String Response = JSONUtil.parseObj(builder).getStr("Response");
+        return JSONUtil.parseObj(Response);
+    }
+
+    //鑾峰彇鏂规硶杩斿洖鍊间俊鎭�
+    public String getAjaxResult(AjaxResult result) {
+        return result.get("data").toString();
+    }
+
+    private void tbhyxm(TjOrder order) {
+        List<LtkjHysqd> one = testMapper.getHysqdByTmh(order.getCardId());
+        if (one != null && one.size() > 0) {
+            for (LtkjHysqd ltkjHysqd : one) {
+                ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(ltkjHysqd.getTjh(), ltkjHysqd.getTmh());
+                ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(ltkjHysqd.getTmh());
+                LtkjHysqd hysqd = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(ltkjHysqd.getTjh(), ltkjHysqd.getTmh());
+                if (hysqd == null) {
+                    ltkjHysqdService.save(ltkjHysqd);
+                    DynamicDataSourceContextHolder.clearDataSourceType();
                     List<LtkjHybgd> one1 = testMapper.getHybgdByTmh(ltkjHysqd.getTmh());
-                    if (one1 != null) {
+                    if (one1 != null && one1.size() > 0) {
                         DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
                         ltkjHybgdService.saveBatch(one1);
                         DynamicDataSourceContextHolder.clearDataSourceType();
                     }
                 }
             }
-
-            List<LtkjExamJcsqd> one2 = testMapper.getExamJcsqdTmh(tjNumber);
-            if (one2 != null) {
-                DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
-                ltkjExamJcsqdService.saveBatch(one2);
-                DynamicDataSourceContextHolder.clearDataSourceType();
-                for (LtkjExamJcsqd ltkjExamJcsqd : one2) {
-                    List<LtkjExamJcbgd> one3 = testMapper.getExamJcbgdByTjh(ltkjExamJcsqd.getTmh());
-                    if (one3 != null) {
-                        DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
-                        ltkjExamJcbgdService.saveBatch(one3);
-                        DynamicDataSourceContextHolder.clearDataSourceType();
-                    }
-                }
-            }
         }
-        return AjaxResult.success("鍚屾鎴愬姛");
     }
 
 
     /**
      * 鏌ヨ浣撴璁板綍瀹㈡埛鍒楄〃
      */
-    @GetMapping("/getList")
-    @ApiOperation(value = "鏌ヨ浣撴璁板綍瀹㈡埛鍒楄〃")//0寰�1宸�
+    @GetMapping ("/getList")
+    @ApiOperation (value = "鏌ヨ浣撴璁板綍瀹㈡埛鍒楄〃")//0寰�1宸�
 //    @PreAuthorize("@ss.hasPermi('check:check:getList')")
-    public AjaxResult getList(@ApiParam(value = "瀹℃牳鐘舵��0寰呭鏍�1宸插鏍�") @RequestParam(required = false) Integer checkStatus,
-                              @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");
+    public AjaxResult getList(@ApiParam (value = "瀹℃牳鐘舵��0寰呭鏍�1宸插鏍�") @RequestParam (required = false) Integer checkStatus,
+                              @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) {
@@ -448,6 +940,7 @@
 //            }
 //            return getResult(page, pageSize, orderList, customerList, map);
 //        }
+
         String value = String.valueOf(compId);
         if (tjNumber == null) tjNumber = "";
         if (compId == null) value = "";
@@ -465,12 +958,12 @@
      * @param checkStatus
      * @return
      */
-    @PutMapping("/getTjdetailList")
-    @ApiOperation(value = "鏍规嵁浣撴璁㈠崟鍙疯幏鍙栦綋妫�璇︽儏淇℃伅(骞朵慨鏀圭姸鎬�)鎺ュ彛")
+    @PutMapping ("/getTjdetailList")
+    @ApiOperation (value = "鏍规嵁浣撴璁㈠崟鍙疯幏鍙栦綋妫�璇︽儏淇℃伅(骞朵慨鏀圭姸鎬�)鎺ュ彛")
 //    @PreAuthorize("@ss.hasPermi('check:check:getTjdetailList')")
-    public AjaxResult getTjdetailList(@ApiParam(value = "浣撴tjNumber") @RequestParam String tjNumber,
-                                      @ApiParam(value = "鎬绘寤鸿") @RequestParam(required = false) String advice,
-                                      @ApiParam(value = "瀹℃牳鐘舵��0寰呭鏍�1宸插鏍�") @RequestParam Integer checkStatus) {
+    public AjaxResult getTjdetailList(@ApiParam (value = "浣撴tjNumber") @RequestParam String tjNumber,
+                                      @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("鏈夊欢鏈熼」鐩殏涓嶈兘鐢熸垚鎶ュ憡!!!");
@@ -492,9 +985,10 @@
                     if (null != customer) {
                         customer.setCusNumber(customer.getCusNumber() + 1);
                         if (customerService.updateById(customer)) {
-                            LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
-                            wqq.eq(TbTransition::getCusId, customer.getCusIdcard());
-                            transitionService.remove(wqq);
+//                            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("鎿嶄綔鎴愬姛");
                         }
@@ -510,19 +1004,20 @@
 
 
     /**
-     * 鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏
+     * 鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏鈥斺�斺�斺�旈潪鍖栭獙椤圭洰
      *
      * @param tjNumber
      * @return
      */
-    @GetMapping("/updateCheckType")
-    @ApiOperation(value = "鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏")
-    public AjaxResult updateCheckType(@ApiParam(value = "瀹㈡埛浣撴鍙�") @RequestParam String tjNumber) {
-        if (redisCache.hasKey("updateCheckType" + tjNumber)) {
-            List<Map<String, Object>> cacheMapValue = redisCache.getCacheMapValue("updateCheckType" + tjNumber, tjNumber);
-            return AjaxResult.success(cacheMapValue);
-        }
-        return getAjaxResult(tjNumber);
+    @GetMapping ("/updateCheckType")
+    @ApiOperation (value = "鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏鈥斺�斺�斺�旈潪鍖栭獙椤圭洰")
+    public AjaxResult updateCheckType(@ApiParam (value = "瀹㈡埛浣撴鍙�") @RequestParam String tjNumber) {
+//        if (redisCache.hasKey("updateCheckType" + tjNumber)) {
+//            List<Map<String, Object>> cacheMapValue = redisCache.getCacheMapValue("updateCheckType" + tjNumber, tjNumber);
+//            return AjaxResult.success(cacheMapValue);
+//        }
+//        return getAjaxResult(tjNumber);
+        return getResult(tjNumber);
     }
 
     private AjaxResult getAjaxResult(String tjNumber) {
@@ -543,6 +1038,16 @@
                 Map<String, Object> parent = new HashMap<>();
                 parent.put("checkAdvice", one.getCheckAdvice());
                 TjProject project = projectService.selectTjProjectByProId(remark.getProId());
+                //鍒ゆ柇璇ラ」鐩槸鍚﹂渶瑕佹墦鍗版姤鍛�
+                if ("N".equals(project.getNeedReport())) {
+                    continue;
+                }
+
+                //鍒ゆ柇璇ラ」鐩槸鍚︽楠岀椤圭洰  2024/2/28g
+                if (project.getDeptId() == 241) {
+                    continue;
+                }
+
                 if (null != project) {
                     parent.put("parent", project.getProName());
                     parent.put("parentId", project.getProId().toString());
@@ -551,19 +1056,29 @@
                 if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
                     for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
                         final TjProject byId = projectService.selectTjProjectByProId(tjOrderDetail.getProId());
+                        String metering = null;
                         if (null == byId) {
                             detailService.removeById(tjOrderDetail.getOrderDetailId());
                         } else {
+                            metering = byId.getProMetering();
                             tjOrderDetail.setProject(byId);
                         }
                         List<TjStandard> list2 = tjStandardService.getTjStandardListByProId(String.valueOf(tjOrderDetail.getProId()));
                         if (list2.size() == 0) {
-                            tjOrderDetail.setStandard(new TjStandard());
+                            TjStandard standard = new TjStandard();
+                            if (StrUtil.isNotBlank(metering))
+                                standard.setCompany(metering);
+                            tjOrderDetail.setStandard(standard);
                         } else if (list2.size() == 1) {
-                            tjOrderDetail.setStandard(list2.get(0));
+                            TjStandard standard = list2.get(0);
+                            if (StrUtil.isNotBlank(metering) && StrUtil.isBlank(standard.getCompany()))
+                                standard.setCompany(metering);
+                            tjOrderDetail.setStandard(standard);
                         } else {
                             final int ageType = StringUtils.getAgeType(DateUtil.ageOfNow(customer.getCusBrithday()));
-                            TjStandard tjStandard1 = tjStandardService.getListBySexAndType(customer.getCusSex(),ageType,String.valueOf(tjOrderDetail.getProId()));
+                            TjStandard tjStandard1 = tjStandardService.getListBySexAndType(customer.getCusSex(), ageType, String.valueOf(tjOrderDetail.getProId()));
+                            if (StrUtil.isNotBlank(metering) && StrUtil.isBlank(tjStandard1.getCompany()))
+                                tjStandard1.setCompany(metering);
                             tjOrderDetail.setStandard(tjStandard1);
                         }
                     }
@@ -590,7 +1105,6 @@
                 } else {
                     return AjaxResult.success("璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁");
                 }
-//                }
             }
             return AjaxResult.success(list);
         }
@@ -598,10 +1112,200 @@
     }
 
 
-    @GetMapping("/getTm")
-    @ApiOperation(value = "鑾峰彇鏉$爜")
+    /**
+     * 鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏鈥斺�斺�斺�斿寲楠岄」鐩�
+     *
+     * @param tjNumber
+     * @return
+     */
+    @GetMapping ("/updateCheckTypeHuaYan")
+    @ApiOperation (value = "鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏鈥斺�斺�斺�斿寲楠岄」鐩�")
+    public AjaxResult updateCheckTypeHuaYan(@ApiParam (value = "瀹㈡埛浣撴鍙�") @RequestParam String tjNumber) {
+//        asyncService.updateCheckType(tjNumber);
+        List<Map<String, Object>> list = new ArrayList<>();
+        TjOrder one = orderService.getOrderByTjNum(tjNumber);
+
+        if (one == null) {
+            return AjaxResult.error("鏆傛棤鏁版嵁锛侊紒");
+        }
+//        final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
+//        if(null !=getInfoFromSqlData && getInfoFromSqlData.equals("Y"))
+//        tbhyxm(one);
+//        TjCustomer customer = customerService.getById(one.getUserId());
+        List<TjOrderRemark> remarkList = orderRemarkService.addHuaYanTable(tjNumber);
+        List<TjOrderDetail> tjOrderDetails = detailService.addHuaYanTable(tjNumber);
+
+
+        if (null != remarkList && remarkList.size() > 0) {
+            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) {
+                    for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
+                        if (remark.getProId().equals(tjOrderDetail.getProId())) {
+                            String ckfw = tjOrderDetail.getStanId();
+                            if (StrUtil.isNotBlank(tjOrderDetail.getProAdvice())) {
+                                ckfw = ckfw.replace(tjOrderDetail.getProAdvice().trim(), "");
+                            }
+                            if (StrUtil.isNotBlank(ckfw)) {
+                                try {
+                                    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 {
+                                        tjOrderDetail.setYcbz("");
+                                    }
+                                } catch (NumberFormatException ignored) {
+                                    ignored.printStackTrace();
+                                }
+                            }
+                            if (null != tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().equals("")) {
+                                tjOrderDetail.setProResult(tjOrderDetail.getProResult() + " [" + tjOrderDetail.getYcbz() + "]");
+                            }
+                            dels.add(tjOrderDetail);
+                        }
+                    }
+                    String summary = remark.getSummary();
+                    if (null != summary) {
+                        String[] split = summary.split(";");
+                        parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(split));
+                    } else {
+                        parent.put("parentAdvice", null);
+                    }
+                    if (dels.size() == 0) {
+                        continue;
+                    }
+                    parent.put("sons", dels);
+                    parent.put("remark", remark.getRemark());
+                    if (remark.getDoctorName() != null && null != userService.getById(remark.getDoctorName())) {
+                        parent.put("doctorName", userService.getById(remark.getDoctorName()).getNickName());
+                    }
+
+                    list.add(parent);
+                } else {
+                    return AjaxResult.success("璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁");
+                }
+            }
+            return AjaxResult.success(list);
+        }
+        return AjaxResult.success("璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁锛�");
+    }
+
+
+    @GetMapping ("/updateHYANDCGCheckType")
+    @ApiOperation (value = "鎬绘鐐瑰嚮浣撴淇℃伅璇︽儏鈥斺�斺�斺�斿父瑙勫拰鍖栭獙椤圭洰")
+    public AjaxResult updateHYANDCGCheckType(@ApiParam (value = "瀹㈡埛浣撴鍙�") @RequestParam String tjNumber) {
+        return getResult(tjNumber);
+    }
+
+    private AjaxResult getResult(String tjNumber) {
+        asyncService.updateCheckType(tjNumber);
+        List<Map<String, Object>> list = new ArrayList<>();
+        TjOrder one = orderService.getOrderByTjNum(tjNumber);
+
+        if (one == null) {
+            return AjaxResult.error("鏆傛棤鏁版嵁锛侊紒");
+        }
+//        final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
+//        if(null !=getInfoFromSqlData && getInfoFromSqlData.equals("Y"))
+//        tbhyxm(one);
+//        TjCustomer customer = customerService.getById(one.getUserId());
+        List<TjOrderRemark> remarkList = orderRemarkService.addHuaYanAndCgTable(tjNumber);
+        List<TjOrderDetail> tjOrderDetails = detailService.addHuaYanAndCgTable(tjNumber);
+
+
+        if (null != remarkList && remarkList.size() > 0) {
+            for (TjOrderRemark remark : remarkList) {
+                Map<String, Object> parent = new HashMap<>();
+                parent.put("checkAdvice", one.getCheckAdvice());
+                parent.put("parent", remark.getProName());
+                parent.put("parentId", remark.getProsId());
+                parent.put("xmlb", remark.getXmlb());
+                parent.put("", remark.getXmlb());
+                List<TjOrderDetail> dels = new ArrayList<>();
+                if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
+                    for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
+                        if (remark.getProsId().equals(tjOrderDetail.getProsId())) {
+                            String ckfw = tjOrderDetail.getStanId();
+                            if (null !=ckfw && StrUtil.isNotBlank(tjOrderDetail.getProAdvice())) {
+                                ckfw = ckfw.replace(tjOrderDetail.getProAdvice().trim(), "");
+                            }
+                            if (StrUtil.isNotBlank(ckfw)) {
+                                try {
+                                    Integer.parseInt(tjOrderDetail.getYcbz());
+                                    String[] split = ckfw.split("-");
+                                    BigDecimal min = new BigDecimal(split[0]);
+                                    BigDecimal max = new BigDecimal(split[1]);
+                                    String proResult = tjOrderDetail.getProResult();
+                                    if(null !=proResult){
+                                        BigDecimal jyjgval = new BigDecimal(proResult);
+                                        if (jyjgval.compareTo(min) < 0) {
+                                            tjOrderDetail.setYcbz("鈫�");
+                                        } else if (jyjgval.compareTo(max) > 0) {
+                                            tjOrderDetail.setYcbz("鈫�");
+                                        }
+                                        else {
+                                            tjOrderDetail.setYcbz("");
+                                        }
+                                        if (null != tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().equals("")) {
+                                            tjOrderDetail.setProResult(tjOrderDetail.getProResult() + " [" + tjOrderDetail.getYcbz() + "]");
+                                        }
+                                    }else {
+                                        tjOrderDetail.setYcbz("");
+                                    }
+                                } catch (NumberFormatException ignored) {
+                                    ignored.printStackTrace();
+                                }
+                            }else {
+                                tjOrderDetail.setYcbz("");
+                                tjOrderDetail.setProResult(tjOrderDetail.getProResult());
+                            }
+
+                            dels.add(tjOrderDetail);
+                        }
+                    }
+                    String summary = remark.getSummary();
+                    if (null != summary) {
+                        String[] split = summary.split(";");
+                        parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(split));
+                    } else {
+                        parent.put("parentAdvice", null);
+                    }
+                    if (dels.size() == 0) {
+                        continue;
+                    }
+                    parent.put("sons", dels);
+                    parent.put("remark", remark.getRemark());
+                    parent.put("jgbx", remark.getJgbx());
+                    if (remark.getDoctorName() != null) {
+                        parent.put("doctorName", remark.getDoctorName());
+                    }
+
+                    list.add(parent);
+                } else {
+                    return AjaxResult.success("璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁");
+                }
+            }
+            return AjaxResult.success(list);
+        }
+        return AjaxResult.success("璇ュ鎴锋病鏈変綋妫�椤圭洰鏁版嵁锛�");
+    }
+
+
+    @GetMapping ("/getTm")
+    @ApiOperation (value = "鑾峰彇鏉$爜")
 //    @PreAuthorize("@ss.hasPermi('check:check:getTm')")
-    public AjaxResult getTm(@ApiParam(value = "瀹㈡埛浣撴鍙�") @RequestParam String tjNumber) {
+    public AjaxResult getTm(@ApiParam (value = "瀹㈡埛浣撴鍙�") @RequestParam String tjNumber) {
         return AjaxResult.success(tjNumber);
     }
 
@@ -610,8 +1314,8 @@
      *
      * @return
      */
-    @PostMapping("/checkUpdateOrderRemark")
-    @ApiOperation(value = "鎬绘淇敼澶囨敞鎺ュ彛")
+    @PostMapping ("/checkUpdateOrderRemark")
+    @ApiOperation (value = "鎬绘淇敼澶囨敞鎺ュ彛")
     public AjaxResult checkUpdateOrderRemark(@RequestBody List<UpdateOrderRemarkVo> updateOrderRemarkVos) {
         if (null != updateOrderRemarkVos && updateOrderRemarkVos.size() > 0) {
             for (UpdateOrderRemarkVo remarkVo : updateOrderRemarkVos) {

--
Gitblit v1.8.0