zjh
2024-07-25 fc568216a671c79c9fdf8cd12b827898cae84b27
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java
@@ -34,6 +34,7 @@
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;
@@ -46,6 +47,7 @@
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;
@@ -56,6 +58,7 @@
@RestController
@RequestMapping ("/check")
@Api (tags = "总检医师相关接口")
@Slf4j
public class TjCheckController {
    @Resource
    private ITjOrderService orderService;
@@ -107,7 +110,8 @@
    private HisApiMethodService controller;
    @Autowired
    private HisApiGetMethodService service;
    @Autowired
    private HisApiConfigService hisApiConfigService;
    @GetMapping ("/getOperationPermissionsByTjNum")
    @ApiOperation (value = "(初审页面  和 医生页面)根据体检号获取是否可操作权限接口  true可操作  反之不可")
@@ -320,8 +324,9 @@
    @GetMapping ("/dataSynchronization")
    @ApiOperation (value = "同步sql server数据到本地数据库数据接口")
    @RepeatSubmit
    @Transactional
//    @Transactional
    public AjaxResult dataSynchronization(@RequestParam String tjNumber) {
        //根据配置调取存储过程 将临时表数据存入预约表2023.12.12
        final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
@@ -358,8 +363,9 @@
            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());
@@ -374,13 +380,10 @@
                    JSONObject object = getJSONObject(result1);
                    String code = object.getStr("ResultCode");
                    if (null == code || !code.equals("0")) {
                        return AjaxResult.error("化验项目暂时无结果,请稍后同步!!!");
                        return AjaxResult.error("化验项目暂时未出结果,请稍后同步!!!");
                    }
                    JSONArray data = object.getJSONArray("ResultData");
//                    int size = data.size();
//                    if(size>0){
//
//                     }
                    for (Object datum : data) {
                        JSONObject jsonObject = (JSONObject) datum;
                        LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(order.getCardId(), jsonObject.getStr("JYBGID"));
@@ -436,73 +439,139 @@
                                    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);
//                    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){
                        if (null != datas && datas.size() > 0) {
                            jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId());
                            jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId());
                            for (Map<String, Object> objectMap : datas) {
                                LtkjExamJcsqd jybgid = jcsqdService.getLtkjJcsqdByTjhAndTmh(order.getCardId(), objectMap.get("JCBGID").toString());
                                if (null != jybgid) {
                                    jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId(), objectMap.get("JCBGID").toString());
                                    jcbgdService.deletedLtkjJcbgdByTjhAndTmh(jybgid.getTmh());
                                }
                                LtkjExamJcbgd jcbgd=new LtkjExamJcbgd();
                                //保存入参出参
//                                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("JCBGID") || !objectMap.get("JCBGID").equals(""))
                                    jcbgd.setTmh(objectMap.get("JCBGID").toString());
                                if(null !=objectMap.get("JCXMDM") || !objectMap.get("JCXMDM").equals(""))
                                jcbgd.setXmdm(objectMap.get("JCXMDM").toString());
                                if (null != objectMap.get("JCXMDM") || !objectMap.get("JCXMDM").equals(""))
                                    jcbgd.setXmdm(objectMap.get("JCXMDM").toString());
                                if(null !=objectMap.get("JCXMMC") || !objectMap.get("JCXMMC").equals(""))
                                jcbgd.setXmmc(objectMap.get("JCXMMC").toString());
                                if (null != objectMap.get("JCXMMC") || !objectMap.get("JCXMMC").equals(""))
                                    jcbgd.setXmmc(objectMap.get("JCXMMC").toString());
                                if(null !=objectMap.get("JCXMJG") || !objectMap.get("JCXMJG").equals(""))
                                jcbgd.setBgNr(objectMap.get("JCXMJG").toString());
                                if (null != objectMap.get("JCXMJG") || !objectMap.get("JCXMJG").equals(""))
                                    jcbgd.setBgNr(objectMap.get("JCXMJG").toString());
                                if(null !=objectMap.get("reporturl") || !objectMap.get("reporturl").equals(""))
                                jcbgd.setBgUrl(objectMap.get("reporturl").toString());
                                if (null != objectMap.get("reporturl") || !objectMap.get("reporturl").equals(""))
                                    jcbgd.setBgUrl(objectMap.get("reporturl").toString());
                                if(null !=objectMap.get("SHYSQM") || !objectMap.get("SHYSQM").equals(""))
                                jcbgd.setShysxm(objectMap.get("SHYSQM").toString());
                                if (null != objectMap.get("SHYSQM") || !objectMap.get("SHYSQM").equals(""))
                                    jcbgd.setShysxm(objectMap.get("SHYSQM").toString());
                                if(null !=objectMap.get("SHYSBH") || !objectMap.get("SHYSBH").equals(""))
                                jcbgd.setShysdm(objectMap.get("SHYSBH").toString());
                                if (null != objectMap.get("SHYSBH") || !objectMap.get("SHYSBH").equals(""))
                                    jcbgd.setShysdm(objectMap.get("SHYSBH").toString());
                                if(null !=objectMap.get("YXZD") || !objectMap.get("YXZD").equals(""))
                                jcbgd.setYxzd(objectMap.get("YXZD").toString());
                                if (null != objectMap.get("YXZD") || !objectMap.get("YXZD").equals(""))
                                    jcbgd.setYxzd(objectMap.get("YXZD").toString());
                                if(null !=objectMap.get("YXBX") || !objectMap.get("YXBX").equals(""))
                                jcbgd.setYxbx(objectMap.get("YXBX").toString());
                                if (null != objectMap.get("YXBX") || !objectMap.get("YXBX").equals("")) {
                                    if (objectMap.get("YXBX").toString().equals("null")) {
                                        jcbgd.setYxbx("未检异常");
                                    } else {
                                        jcbgd.setYxbx(objectMap.get("YXBX").toString());
                                    }
                                }
                                if (null != objectMap.get("SJJLSJ") || !objectMap.get("SJJLSJ").equals(""))
                                    jcbgd.setZdsj(objectMap.get("SJJLSJ").toString());
                                if(null !=objectMap.get("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("检查项目暂时未出结果,请稍后同步!!!");
                        }
                    }
                }
                //同步化验项目
                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());
                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();
        return AjaxResult.error("未查到该人员体检记录");
    }
    //将方法返回值解析成json格式
@@ -930,13 +999,15 @@
                Map<String, Object> parent = new HashMap<>();
                parent.put("checkAdvice", one.getCheckAdvice());
                parent.put("parent", remark.getProName());
                parent.put("parentId", remark.getProsId().toString());
                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 (StrUtil.isNotBlank(tjOrderDetail.getProAdvice())) {
                            if (null !=ckfw && StrUtil.isNotBlank(tjOrderDetail.getProAdvice())) {
                                ckfw = ckfw.replace(tjOrderDetail.getProAdvice().trim(), "");
                            }
                            if (StrUtil.isNotBlank(ckfw)) {
@@ -957,10 +1028,13 @@
                                } catch (NumberFormatException ignored) {
                                    ignored.printStackTrace();
                                }
                                if (null != tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().equals("")) {
                                    tjOrderDetail.setProResult(tjOrderDetail.getProResult() + " [" + tjOrderDetail.getYcbz() + "]");
                                }
                            }else {
                                tjOrderDetail.setProResult(tjOrderDetail.getProResult());
                            }
                            if (null != tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().equals("")) {
                                tjOrderDetail.setProResult(tjOrderDetail.getProResult() + " [" + tjOrderDetail.getYcbz() + "]");
                            }
                            dels.add(tjOrderDetail);
                        }
                    }
@@ -976,6 +1050,7 @@
                    }
                    parent.put("sons", dels);
                    parent.put("remark", remark.getRemark());
                    parent.put("jgbx", remark.getJgbx());
                    if (remark.getDoctorName() != null) {
                        parent.put("doctorName", remark.getDoctorName());
                    }