陈昶聿
6 天以前 586a386b2d779e94002c8099ff62271b0e684d88
smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -79,7 +79,8 @@
        try {
            Map<String, Object> requestParams = buildRequestParams(reqVO);
            Map<String, String> headers = buildRequestHeaders();
            String result = HttpUtils.sendPostByHeader(sltdPubPath + "osj/hbos-thirdparty-integration/standard/common/healthcareRecord/dtcQueryHealthcareRecordList", new Gson().toJson(requestParams), headers);
            log.info("请求参数出院数据地址:{},appKey:{}", sltdPubPath + "/osj/hbos-thirdparty-integration/standard/common/healthcareRecord/dtcQueryHealthcareRecordList", APP_KEY);
            String result = HttpUtils.sendPostByHeader(sltdPubPath + "/osj/hbos-thirdparty-integration/standard/common/healthcareRecord/dtcQueryHealthcareRecordList", new Gson().toJson(requestParams), headers);
            String cry = determineCry(reqVO);
            log.info("cry的值为:{}", cry);
@@ -88,7 +89,7 @@
            return serviceSLTDInhospResDTOS;
        } catch (Exception e) {
            log.error("【queryHealthcareRecordList】调用省立同德健康记录查询接口异常,请求参数:{}", reqVO, e);
            throw new RuntimeException("调用省立同德健康记录查询接口失败", e);
            throw new RuntimeException("调用省立同德健康记录查询接口失败:" + e.getMessage());
        }
    }
@@ -264,70 +265,67 @@
            // 处理用户与部门的关系
            List businessDepts = (List<?>) dataItem.get("businessDepts");
            if (CollectionUtils.isEmpty(businessDepts)) {
                continue;
            }
            if (CollectionUtils.isNotEmpty(businessDepts)) {
                List<List<String>> deptInfoList = new ArrayList<>();
                List<List<String>> hospInfoList = new ArrayList<>();
                log.info("------businessDepts是否有值:{}", businessDepts.size());
                for (Object businessDept : businessDepts) {
                    if (businessDept instanceof Map) {
                        Map<String, Object> businessDeptMap = (Map<String, Object>) businessDept;
                        log.info("------businessDeptMap是否有值:{}", businessDeptMap);
                        String hisDeptId = getStringValue(businessDeptMap, "deptId");
                        log.info("------hisDeptId是否有值:{}, reqVO.getOrgId()的值为:{}", hisDeptId, reqVO.getCampusId());
                        //在这里,hisDeptId就是deptCode
                        SysDept sysDept = sysDeptMapper.selectDeptByCode(hisDeptId, reqVO.getOrgId());
                        log.info("------hisDeptId是否有值:{}, reqVO.getCampusId()的值为:{}", hisDeptId, reqVO.getCampusId());
                        if (Objects.isNull(sysDept)) continue;
                        SysUserDept sysUserDept = new SysUserDept();
                        sysUserDept.setUserId(sysUser.getUserId());
                        sysUserDept.setDeptType(sysDept.getDeptType());
                        sysUserDept.setDeptId(sysDept.getDeptId());
                        sysUserDept.setDeptCode(sysDept.getDeptCode());
                        sysUserDept.setDeptName(sysDept.getDeptName());
                        sysUserDept.setOrgid(sysDept.getOrgid());
                        sysUserDept.setCreateTime(new Date());
                        sysUserDept.setDelFlag(0L);
            List<List<String>> deptInfoList = new ArrayList<>();
            List<List<String>> hospInfoList = new ArrayList<>();
            log.info("------businessDepts是否有值:{}", businessDepts.size());
            for (Object businessDept : businessDepts) {
                if (businessDept instanceof Map) {
                    Map<String, Object> businessDeptMap = (Map<String, Object>) businessDept;
                    log.info("------businessDeptMap是否有值:{}", businessDeptMap);
//                    Long hisDeptId = (Long) personnelDeptMap.get("deptId");
                    String hisDeptId = getStringValue(businessDeptMap, "deptId");
                    log.info("------hisDeptId是否有值:{}, reqVO.getOrgId()的值为:{}", hisDeptId, reqVO.getCampusId());
                    //在这里,hisDeptId就是deptCode
                    SysDept sysDept = sysDeptMapper.selectDeptByCode(hisDeptId, reqVO.getOrgId());
                    log.info("------hisDeptId是否有值:{}, reqVO.getCampusId()的值为:{}", hisDeptId, reqVO.getCampusId());
                    if (Objects.isNull(sysDept)) continue;
                    SysUserDept sysUserDept = new SysUserDept();
                    sysUserDept.setUserId(sysUser.getUserId());
                    sysUserDept.setDeptType(sysDept.getDeptType());
                    sysUserDept.setDeptId(sysDept.getDeptId());
                    sysUserDept.setDeptCode(sysDept.getDeptCode());
                    sysUserDept.setDeptName(sysDept.getDeptName());
                    sysUserDept.setOrgid(sysDept.getOrgid());
                    sysUserDept.setCreateTime(new Date());
                    sysUserDept.setDelFlag(0L);
                    //判断一下用户-部门关系是不是已经存在了(无论新用户还是老用户都需要去重)
                    if (ObjectUtils.isNotEmpty(sysUser.getUserId()) && ObjectUtils.isNotEmpty(sysDept)) {
                        SysUserDept sud = new SysUserDept();
                        sud.setUserId(sysUser.getUserId());
                        sud.setDeptId(sysDept.getDeptId());
                        sud.setOrgid(sysDept.getOrgid());
                        List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sud);
                        if (CollectionUtils.isNotEmpty(sysUserDepts)) {
                            sysUserDept.setId(sysUserDepts.get(0).getId());
                            sysUserDeptMapper.updateSysUserDept(sysUserDept);
                        } else {
                            sysUserDeptMapper.insertSysUserDept(sysUserDept);
                        //判断一下用户-部门关系是不是已经存在了(无论新用户还是老用户都需要去重)
                        if (ObjectUtils.isNotEmpty(sysUser.getUserId()) && ObjectUtils.isNotEmpty(sysDept)) {
                            SysUserDept sud = new SysUserDept();
                            sud.setUserId(sysUser.getUserId());
                            sud.setDeptId(sysDept.getDeptId());
                            sud.setOrgid(sysDept.getOrgid());
                            List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sud);
                            if (CollectionUtils.isNotEmpty(sysUserDepts)) {
                                sysUserDept.setId(sysUserDepts.get(0).getId());
                                sysUserDeptMapper.updateSysUserDept(sysUserDept);
                            } else {
                                sysUserDeptMapper.insertSysUserDept(sysUserDept);
                            }
                        }
                        if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("1")) {
                            hospInfoList.add(Arrays.asList(sysDept.getDeptCode()));
                        } else if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("2")) {
                            deptInfoList.add(Arrays.asList(sysDept.getDeptCode()));
                        }
                    }
                    if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("1")) {
                        hospInfoList.add(Arrays.asList(sysDept.getDeptCode()));
                    } else if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("2")) {
                        deptInfoList.add(Arrays.asList(sysDept.getDeptCode()));
                    }
                }
                //将部门我病区放到指定字段中
                Gson gson = new Gson();
                sysUser.setHospInfo(gson.toJson(hospInfoList));
                sysUser.setDeptInfo(gson.toJson(deptInfoList));
                sysUser2Mapper.updateUser(sysUser);
            }
            //将部门我病区放到指定字段中
            Gson gson = new Gson();
            sysUser.setHospInfo(gson.toJson(hospInfoList));
            sysUser.setDeptInfo(gson.toJson(deptInfoList));
            sysUser2Mapper.updateUser(sysUser);
            //设置一个默认角色(医生角色)
            List<SysUserRole> userRoleList = new ArrayList();
            SysUserRole sur = new SysUserRole();
            sur.setUserId(sysUser.getUserId());
            sur.setRoleId(3L);
            sur.setRoleId(4L);
            sur.setOrgid(sysUser.getOrgid());
            //先查询一下,是否存在
            SysUserRole sysUserRole = sysUserRoleMapper.selectUserRoleByRoleIdAndUserId(3L, sysUser.getUserId());
            SysUserRole sysUserRole = sysUserRoleMapper.selectUserRoleByRoleIdAndUserId(4L, sysUser.getUserId());
            if (ObjectUtils.isNotEmpty(sysUserRole)) continue;
            userRoleList.add(sur);
@@ -587,6 +585,7 @@
        queryInhosp.setSerialnum(StringUtils.trim(patMedInhosp.getSerialnum()));
        queryInhosp.setOrgid(StringUtils.trim(dto.getOrgId()));
        queryInhosp.setInhospstate(cry);
        queryInhosp.setSchemestatus(0L);
        log.info("----------------这里的入参为:{},{}", queryInhosp.getPatno(), queryInhosp.getSerialnum());
        List<PatMedInhosp> existingInhosps = patMedInhospService.selectPatMedInhosp(queryInhosp);
@@ -710,11 +709,43 @@
        patMedInhosp.setSerialnum(dto.getHealthcareRecordNo());
        patMedInhosp.setInhospno(dto.getHealthcareRecordNo());
        patMedInhosp.setFuflag("1");
        if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1"))
            patMedInhosp.setFuflag("0");
        if ("0".equals(cry)) patMedInhosp.setInhospstate("0");
        if ("1".equals(cry)) patMedInhosp.setInhospstate("1");
        if ("3".equals(cry)) patMedInhosp.setInhospstate("3");
        if ("0".equals(cry)) {
            patMedInhosp.setInhospstate("0");
            if (CollectionUtils.isNotEmpty(dto.getDiagnosisList()) && dto.getDiagnosisList().size() > 0) {
                for (ServiceSLTDDiagnosisResDTO diagnosis : dto.getDiagnosisList()) {
                    if (diagnosis.getIsMainDiagnosis() == 1) {
                        patMedInhosp.setDiagname(diagnosis.getDiagnosisDictName() == null ? "" : diagnosis.getDiagnosisDictName());
                        patMedInhosp.setIcd10code(diagnosis.getDiagnosisDictCode() == null ? "" : diagnosis.getDiagnosisDictCode());
                    }
                }
            }
        }
        if ("1".equals(cry)) {
            patMedInhosp.setInhospstate("1");
            if (CollectionUtils.isNotEmpty(dto.getDiagnosisList()) && dto.getDiagnosisList().size() > 0) {
                for (ServiceSLTDDiagnosisResDTO diagnosis : dto.getDiagnosisList()) {
                    if (diagnosis.getIsMainDiagnosis() == 1) {
                        patMedInhosp.setLeavediagname(diagnosis.getDiagnosisDictName() == null ? "" : diagnosis.getDiagnosisDictName());
                        patMedInhosp.setLeaveicd10code(diagnosis.getDiagnosisDictCode() == null ? "" : diagnosis.getDiagnosisDictCode());
                    }
                }
            }
        }
        if ("3".equals(cry)) {
            patMedInhosp.setInhospstate("3");
            if (CollectionUtils.isNotEmpty(dto.getDiagnosisList()) && dto.getDiagnosisList().size() > 0) {
                for (ServiceSLTDDiagnosisResDTO diagnosis : dto.getDiagnosisList()) {
                    if (diagnosis.getIsMainDiagnosis() == 1) {
                        patMedInhosp.setDiagname(diagnosis.getDiagnosisDictName() == null ? "" : diagnosis.getDiagnosisDictName());
                        patMedInhosp.setIcd10code(diagnosis.getDiagnosisDictCode() == null ? "" : diagnosis.getDiagnosisDictCode());
                    }
                }
            }
        }
        patMedInhosp.setHospitalcode(dto.getOrgId());
        patMedInhosp.setBedNo(dto.getBedNumber());
        patMedInhosp.setStarttime(parseDate(dto.getStartTime()));
@@ -768,12 +799,6 @@
            queryByPatientNo.setIdcardno(StringUtils.isNotEmpty(dto.getIdCardNo()) ? dto.getIdCardNo().trim() : null);
            existingArchives = patArchiveService.selectPatArchiveList(queryByPatientNo);
        }
//        if (CollectionUtils.isEmpty(existingArchives) && !StringUtils.isEmpty(dto.getIdCardNo())) {
//            PatArchive queryByIdCard = new PatArchive();
//            queryByIdCard.setIdcardno(dto.getIdCardNo().trim());
//            existingArchives = patArchiveService.selectPatArchiveList(queryByIdCard);
//        }
        PatArchive patArchive = buildPatientArchive(dto);
        if (CollectionUtils.isEmpty(existingArchives)) {