From 0c515e7b8e3c1c15c615cc831ef3fdb09ea5265e Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期五, 10 十月 2025 10:25:17 +0800 Subject: [PATCH] 修改BUG --- smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java | 319 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 259 insertions(+), 60 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java index b087f29..408e684 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java @@ -2,24 +2,28 @@ import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.entity.SysUserDept; +import com.ruoyi.common.core.domain.entity.SysUserRole; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.http.HttpUtils; import com.smartor.domain.*; -import com.smartor.mapper.PatMedOuthospMapper; -import com.smartor.mapper.SysUser2Mapper; -import com.smartor.mapper.SysUserImportMapper; +import com.smartor.mapper.*; import com.smartor.service.IPatArchiveService; import com.smartor.service.IPatMedInhospService; import com.smartor.service.IServiceSLTDHealthcareRecordService; +import com.sun.org.apache.bcel.internal.generic.NEW; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import java.lang.reflect.Array; import java.lang.reflect.Type; +import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -29,7 +33,7 @@ public class ServiceSLTDHealthcareRecordServiceImpl implements IServiceSLTDHealthcareRecordService { private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; - private static final String APP_KEY = "ak-zUMiOWhqXiJQWPB1pCbz0pjr"; + public static final String APP_KEY = "ak-zUMiOWhqXiJQWPB1pCbz0pjr"; @Autowired private IPatArchiveService patArchiveService; @@ -43,25 +47,128 @@ @Autowired private SysUser2Mapper sysUser2Mapper; + @Autowired + private SysDept2Mapper sysDeptMapper; + + @Autowired + private SysUserDeptMapper sysUserDeptMapper; + + @Autowired + private SysUserRole2Mapper sysUserRoleMapper; + @Value("${sltd_pub_path}") private String sltdPubPath; + @Value("${userPwd}") + private String userPwd; + @Override public List<ServiceSLTDInhospResDTO> queryHealthcareRecordList(ServiceSLTDInhospReqVO reqVO) { - log.info("銆恞ueryHealthcareRecordList銆戝紑濮嬭皟鐢ㄧ渷绔嬪悓寰峰仴搴疯褰曟煡璇㈡帴鍙o紝璇锋眰鍙傛暟锛歿}", reqVO); try { + log.info("銆恞ueryHealthcareRecordList銆戝紑濮嬭皟鐢ㄧ渷绔嬪悓寰峰仴搴疯褰曟煡璇㈡帴鍙o紝璇锋眰鍙傛暟锛歿}", reqVO); 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("銆恞ueryHealthcareRecordList銆戞帴鍙e搷搴旂粨鏋滐細{}", result); String cry = determineCry(reqVO); - return parseResponseData(result, reqVO.getHealthcareRecordTypeList().get(0), cry); + return parseResponseData(result, reqVO.getHealthcareRecordTypeList(), cry, reqVO.getCampusId()); } catch (Exception e) { log.error("銆恞ueryHealthcareRecordList銆戣皟鐢ㄧ渷绔嬪悓寰峰仴搴疯褰曟煡璇㈡帴鍙e紓甯革紝璇锋眰鍙傛暟锛歿}", reqVO, e); throw new RuntimeException("璋冪敤鐪佺珛鍚屽痉鍋ュ悍璁板綍鏌ヨ鎺ュ彛澶辫触", e); } } + + + /** + * 閲囬泦绉戝鐥呭尯淇℃伅 + * + * @param serviceSLTDDeptReqVO + * @return 鍙傝�� + * { + * "orgId": 20001001, + * "campusIds": 30001002, + * "unitIds": null, + * "relationType": null, + * "searchText": null, + * "status": 1 + * } + */ + @Override + public Boolean queryDeptWardAreaInfoList(ServiceSLTDDeptReqVO serviceSLTDDeptReqVO) { + log.info("銆恞ueryDeptWardAreaInfoList銆戝紑濮嬭皟鐢ㄧ渷绔嬪悓寰风瀹ょ梾鍖烘煡璇㈡帴鍙o紝璇锋眰鍙傛暟锛歿}", serviceSLTDDeptReqVO); + try { + Map<String, Object> params = new HashMap<>(); + if (serviceSLTDDeptReqVO.getOrgId() != null) { + params.put("orgId", Long.parseLong(serviceSLTDDeptReqVO.getOrgId())); + } + if (serviceSLTDDeptReqVO.getCampusIds() != null) { + params.put("campusIds", serviceSLTDDeptReqVO.getCampusIds()); + } + params.put("subjectCode", serviceSLTDDeptReqVO.getSubjectCode()); + params.put("orgSubjectCode", serviceSLTDDeptReqVO.getOrgSubjectCode()); + + params.put("deptDimensions", serviceSLTDDeptReqVO.getDeptDimensions()); + + params.put("serviceScopes", serviceSLTDDeptReqVO.getServiceScopes()); + params.put("inpatientArea", serviceSLTDDeptReqVO.getInpatientArea()); + params.put("status", serviceSLTDDeptReqVO.getStatus()); + + + Map<String, String> headers = buildRequestHeaders(); + String result = HttpUtils.sendPostByHeader(sltdPubPath + "/osj/hbos-thirdparty-integration/standard/common/dept/queryDeptList", new Gson().toJson(params), headers); + log.info("銆恞ueryDeptWardAreaInfoList銆戞帴鍙e搷搴旂粨鏋滐細{}", result); + List<Map<String, Object>> dataList = getDataList(result); + log.info("-----------dataList鎺ュ彛鍝嶅簲缁撴灉锛歿}", dataList.size()); + for (Map<String, Object> dataItem : dataList) { + SysDept sysDept = new SysDept(); + sysDept.setOrgid("" + serviceSLTDDeptReqVO.getCampusIds().get(0)); + sysDept.setHisDeptId("" + getLongValue(dataItem, "deptId")); + sysDept.setHisParentId(getStringValue(dataItem, "parentDeptId")); + //閫氳繃his鐨勭埗绉戝ID鍘绘壘鍒扮瀹D,濉厖parentId + if (StringUtils.isNotEmpty(getStringValue(dataItem, "parentDeptId"))) { + SysDept sd = new SysDept(); + sd.setHisDeptId(getStringValue(dataItem, "parentDeptId")); + sd.setOrgid(getStringValue(dataItem, "orgId")); + List<SysDept> sysDepts = sysDeptMapper.selectDeptList(sd); + if (CollectionUtils.isNotEmpty(sysDepts)) { + SysDept sysDept1 = sysDepts.get(0); + sysDept.setParentId(sysDept1.getDeptId()); + sysDept.setParentName(sysDept1.getDeptName()); + } + } + sysDept.setDeptName(getStringValue(dataItem, "deptName")); + Integer inpatientArea = getIntegerValue(dataItem, "inpatientArea"); + if (inpatientArea != null && inpatientArea == 0) sysDept.setDeptType("1"); + else if (inpatientArea != null && inpatientArea == 1) sysDept.setDeptType("2"); + sysDept.setLeader(""); + Integer status = getIntegerValue(dataItem, "status"); + if (status != null & status == 0) sysDept.setStatus("1"); + if (status != null & status == 1) sysDept.setStatus("0"); + sysDept.setType(""); + sysDept.setDeptCode("" + getLongValue(dataItem, "deptId")); + sysDept.setCreateBy(null); + sysDept.setCreateTime(new Date()); + sysDept.setUpdateTime(new Date()); + sysDept.setUpdateBy(null); + + SysDept sysDept1 = sysDeptMapper.selectDeptByCode(sysDept.getDeptCode(), sysDept.getOrgid()); + if (Objects.isNull(sysDept1)) { + int i = sysDeptMapper.insertDept(sysDept); + log.info("ServiceExternalServiceImpl---addDeptInfo鏄惁鏂板鎴愬姛锛歿}", i); + } else { + sysDept.setDeptId(sysDept1.getDeptId()); + int i = sysDeptMapper.updateDept(sysDept); + log.info("ServiceExternalServiceImpl---addDeptInfo鏄惁淇敼鎴愬姛04锛歿}", i); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return true; + } + /** * 閲囬泦鍖婚櫌鐢ㄦ埛淇℃伅 @@ -73,11 +180,14 @@ public Boolean queryHospUserInfoList(ServiceSLTDInhospReqVO reqVO) { 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); + String result = HttpUtils.sendPostByHeader(sltdPubPath + "/osj/hbos-thirdparty-integration/standard/common/staff/queryStaffList", new Gson().toJson(requestParams), headers); log.info("銆恞ueryHealthcareRecordList銆戞帴鍙e搷搴旂粨鏋滐細{}", result); List<Map<String, Object>> dataList = getDataList(result); for (Map<String, Object> dataItem : dataList) { SysUser sysUser = new SysUser(); + if (StringUtils.isEmpty(getStringValue(dataItem, "accountNo"))) { + continue; + } sysUser.setUserName(getStringValue(dataItem, "accountNo")); sysUser.setNickName(getStringValue(dataItem, "name")); List diagnosisObjList = (List<?>) dataItem.get("qualifications"); @@ -86,15 +196,21 @@ if (diagnosis instanceof Map) { Map<String, Object> diagnosisMap = (Map<String, Object>) diagnosis; String professionalTitleName = getStringValue(diagnosisMap, "professionalTitleName"); - if (professionalTitleName.contains("鍖诲笀")) sysUser.setUserType("鍖荤敓"); - if (professionalTitleName.contains("鎶�")) sysUser.setUserType("鎶ゅ+"); + if (professionalTitleName.contains("鍖诲笀")) { + sysUser.setUserType("鍖荤敓"); + sysUser.setSearchscope("1"); + } + if (professionalTitleName.contains("鎶�")) { + sysUser.setUserType("鎶ゅ+"); + sysUser.setSearchscope("2"); + } sysUser.setTitle(getStringValue(diagnosisMap, "professionalTitleName")); } } } - sysUser.setDeptCode(getStringValue(dataItem, "accountNo")); - sysUser.setDeptName(getStringValue(dataItem, "personnelDeptName")); + sysUser.setPhonenumber(getStringValue(dataItem, "telephone")); + sysUser.setUserCode(getStringValue(dataItem, "jobNumber")); //璁剧疆鎬у埆 String genderName = getStringValue(dataItem, "genderName"); if ("鐢�".equals(genderName)) sysUser.setSex("0"); @@ -105,8 +221,61 @@ sysUser.setUpdateTime(new Date()); sysUser.setUpdateBy("admin"); sysUser.setCreateBy("admin"); + sysUser.setCreateBy("admin"); + sysUser.setOrgid(reqVO.getCampusId().toString()); + BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + sysUser.setPassword(passwordEncoder.encode(userPwd)); sysUser2Mapper.insertUser(sysUser); + + // 澶勭悊鐢ㄦ埛涓庨儴闂ㄧ殑鍏崇郴 + List personnelDepts = (List<?>) dataItem.get("personnelDepts"); + if (CollectionUtils.isEmpty(personnelDepts)) { + continue; + } + + List<List<String>> deptInfoList = new ArrayList<>(); + List<List<String>> hospInfoList = new ArrayList<>(); + for (Object personnelDept : personnelDepts) { + if (personnelDept instanceof Map) { + Map<String, Object> personnelDeptMap = (Map<String, Object>) personnelDept; +// Long hisDeptId = (Long) personnelDeptMap.get("deptId"); + String hisDeptId = getStringValue(personnelDeptMap, "deptId"); + //鍦ㄨ繖閲岋紝hisDeptId灏辨槸deptCode + SysDept sysDept = sysDeptMapper.selectDeptByCode(hisDeptId, reqVO.getCampusId().toString()); + 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); + 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())); + } + } + } + //灏嗛儴闂ㄦ垜鐥呭尯鏀惧埌鎸囧畾瀛楁涓� + 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.setOrgid(sysUser.getOrgid()); + userRoleList.add(sur); + sysUserRoleMapper.batchUserRole(userRoleList); + } return true; @@ -116,7 +285,7 @@ if (reqVO.getHealthcareRecordTypeList().contains("FH0108.02")) { if (reqVO.getStartHeadTime() != null && reqVO.getStartTailTime() != null) { return "0"; - } else if (reqVO.getPreOutHospitalHeadDate() != null && reqVO.getPreOutHospitalTailDate() != null) { + } else if (StringUtils.isNotEmpty(reqVO.getPreOutHospitalHeadDate()) && StringUtils.isNotEmpty(reqVO.getPreOutHospitalTailDate())) { return "1"; } } @@ -128,14 +297,26 @@ if (reqVO.getOrgId() != null) { params.put("orgId", Long.parseLong(reqVO.getOrgId())); } - if (reqVO.getCampusIds() != null) { - params.put("campusIds", reqVO.getCampusIds()); + if (reqVO.getCampusId() != null) { + params.put("campusId", reqVO.getCampusId()); } if (reqVO.getStartHeadTime() != null) { params.put("startHeadTime", reqVO.getStartHeadTime()); } if (reqVO.getStartTailTime() != null) { params.put("startTailTime", reqVO.getStartTailTime()); + } + if (reqVO.getEncounterTimeStart() != null) { + params.put("encounterTimeStart", reqVO.getEncounterTimeStart()); + } + if (reqVO.getEncounterTimeEnd() != null) { + params.put("encounterTimeEnd", reqVO.getEncounterTimeEnd()); + } + if (reqVO.getPreOutHospitalHeadDate() != null) { + params.put("preOutHospitalHeadDate", reqVO.getPreOutHospitalHeadDate()); + } + if (reqVO.getPreOutHospitalTailDate() != null) { + params.put("preOutHospitalTailDate", reqVO.getPreOutHospitalTailDate()); } if (reqVO.getHealthcareRecordTypeList() != null && !reqVO.getHealthcareRecordTypeList().isEmpty()) { params.put("healthcareRecordTypeList", reqVO.getHealthcareRecordTypeList()); @@ -148,7 +329,7 @@ } params.put("serviceScopes", null); params.put("inpatientArea", null); - params.put("status", reqVO.getStatusList() != null && !reqVO.getStatusList().isEmpty() ? reqVO.getStatusList() : null); + params.put("status", reqVO.getStatusList() != null && !reqVO.getStatusList().isEmpty() ? reqVO.getStatusList().get(0) : null); return params; } @@ -159,7 +340,7 @@ return headers; } - private List<ServiceSLTDInhospResDTO> parseResponseData(String result, String type, String cry) { + private List<ServiceSLTDInhospResDTO> parseResponseData(String result, List<String> types, String cry, Long orgid) { try { List<Map<String, Object>> dataList = getDataList(result); @@ -169,7 +350,7 @@ } log.info("銆恜arseResponseData銆戞垚鍔熻В鏋恵}鏉″仴搴疯褰曟暟鎹�", resultList.size()); - processResultList(resultList, type, cry); + processResultList(resultList, types, cry, orgid); return resultList; } catch (Exception e) { log.error("銆恜arseResponseData銆戣В鏋愬搷搴旀暟鎹紓甯革紝鍝嶅簲鍐呭锛歿}", result, e); @@ -182,16 +363,16 @@ Type mapType = new TypeToken<Map<String, Object>>() { }.getType(); Map<String, Object> responseMap = gson.fromJson(result, mapType); - - Number codeObj = (Number) responseMap.get("code"); - if (codeObj == null || codeObj.intValue() != 200) { - log.error("銆恜arseResponseData銆戞帴鍙h繑鍥炲け璐ワ紝鍝嶅簲鐮侊細{}锛屽搷搴斿唴瀹癸細{}", codeObj, result); - throw new RuntimeException("鎺ュ彛璋冪敤澶辫触锛屽搷搴旂爜锛�" + codeObj); + Number codeNum = (Number) responseMap.get("code"); + String code = BigDecimal.valueOf(codeNum.longValue()).toPlainString(); + if (StringUtils.isEmpty(code) || !code.equals("200")) { + log.error("銆恜arseResponseData銆戞帴鍙h繑鍥炲け璐ワ紝鍝嶅簲鐮侊細{}锛屽搷搴斿唴瀹癸細{}", code, result); + throw new RuntimeException("鎺ュ彛璋冪敤澶辫触锛屽搷搴旂爜锛�" + code); } Object dataObj = responseMap.get("data"); if (dataObj == null) { - log.warn("銆恜arseResponseData銆戞帴鍙h繑鍥炴暟鎹负绌�"); + log.info("銆恜arseResponseData銆戞帴鍙h繑鍥炴暟鎹负绌�"); return new ArrayList<>(); } @@ -202,36 +383,38 @@ return dataList; } - private void processResultList(List<ServiceSLTDInhospResDTO> resultList, String type, String cry) { - switch (type) { - case "FH0108.01": - log.info("銆恜arseResponseData銆戣В鏋愰棬璇婃暟鎹�"); - outHospitalDate(resultList); - break; - case "FH0108.02": - log.info("銆恜arseResponseData銆戣В鏋愪綇闄㈡暟鎹�"); - inHospitalDate(resultList, cry); - break; - case "FH0108.03": - log.info("銆恜arseResponseData銆戣В鏋愭�ヨ瘖鏁版嵁"); - outHospitalDate(resultList); - break; - default: - log.warn("銆恜arseResponseData銆戞湭鐭ョ殑鏁版嵁绫诲瀷锛歿}", type); - break; - } + private void processResultList(List<ServiceSLTDInhospResDTO> resultList, List<String> types, String cry, Long orgid) { + for (String type : types) + switch (type) { + case "FH0108.01": + log.info("銆恜arseResponseData銆戣В鏋愰棬璇婃暟鎹�"); + outHospitalDate(resultList, orgid); + break; + case "FH0108.02": + log.info("銆恜arseResponseData銆戣В鏋愪綇闄㈡暟鎹�"); + inHospitalDate(resultList, cry, orgid); + break; + case "FH0108.03": + log.info("銆恜arseResponseData銆戣В鏋愭�ヨ瘖鏁版嵁"); + outHospitalDate(resultList, orgid); + break; + default: + log.warn("銆恜arseResponseData銆戞湭鐭ョ殑鏁版嵁绫诲瀷锛歿}", type); + break; + } } - private Boolean outHospitalDate(List<ServiceSLTDInhospResDTO> resultList) { + private Boolean outHospitalDate(List<ServiceSLTDInhospResDTO> resultList, Long orgid) { for (ServiceSLTDInhospResDTO dto : resultList) { - PatArchive patArchive = processPatientArchive(dto); - PatMedOuthosp patMedOuthosp = buildPatMedOuthosp(dto, patArchive); + if (Objects.isNull(dto)) continue; + PatArchive patArchive = processPatientArchive(dto, orgid); + PatMedOuthosp patMedOuthosp = buildPatMedOuthosp(dto, patArchive, orgid); patMedOuthospMapper.insertPatMedOuthosp(patMedOuthosp); } return true; } - private PatMedOuthosp buildPatMedOuthosp(ServiceSLTDInhospResDTO dto, PatArchive patArchive) { + private PatMedOuthosp buildPatMedOuthosp(ServiceSLTDInhospResDTO dto, PatArchive patArchive, Long orgid) { PatMedOuthosp patMedOuthosp = new PatMedOuthosp(); patMedOuthosp.setOuthospno(dto.getHealthcareRecordNo()); patMedOuthosp.setSerialnum(dto.getHealthcareRecordNo()); @@ -249,10 +432,14 @@ patMedOuthosp.setMainsuit(dto.getDiagnosisName()); patMedOuthosp.setHpi(null); patMedOuthosp.setCreateTime(new Date()); + patMedOuthosp.setOrgid("" + orgid); return patMedOuthosp; } private Date parseDate(String dateStr) { + if (StringUtils.isEmpty(dateStr)) { + return null; + } try { return new SimpleDateFormat(DATE_FORMAT).parse(dateStr); } catch (ParseException e) { @@ -261,21 +448,25 @@ } } - private Boolean inHospitalDate(List<ServiceSLTDInhospResDTO> resultList, String cry) { + private Boolean inHospitalDate(List<ServiceSLTDInhospResDTO> resultList, String cry, Long orgid) { for (ServiceSLTDInhospResDTO dto : resultList) { - PatArchive patArchive = processPatientArchive(dto); - processPatientInhospInfo(dto, patArchive, cry); + if (Objects.isNull(dto)) continue; + PatArchive patArchive = processPatientArchive(dto, orgid); + processPatientInhospInfo(dto, patArchive, cry, orgid); } return true; } - private void processPatientInhospInfo(ServiceSLTDInhospResDTO dto, PatArchive patArchive, String cry) { - PatMedInhosp patMedInhosp = buildPatientInhospInfo(dto, patArchive, cry); + private void processPatientInhospInfo(ServiceSLTDInhospResDTO dto, PatArchive patArchive, String cry, Long orgid) { + PatMedInhosp patMedInhosp = buildPatientInhospInfo(dto, patArchive, cry, orgid); PatMedInhosp queryInhosp = new PatMedInhosp(); queryInhosp.setPatno(patArchive.getPatientno()); queryInhosp.setSerialnum(patMedInhosp.getSerialnum()); + queryInhosp.setOrgid("" + orgid); + log.info("----------------杩欓噷鐨勫叆鍙備负锛歿}", queryInhosp); List<PatMedInhosp> existingInhosps = patMedInhospService.selectPatMedInhospList(queryInhosp); + log.info("----------------杩欓噷鐨勮繑鍙備负锛歿}", existingInhosps); if (CollectionUtils.isNotEmpty(existingInhosps)) { patMedInhosp.setInhospid(existingInhosps.get(0).getInhospid()); patMedInhospService.updatePatMedInhosp(patMedInhosp); @@ -286,7 +477,8 @@ } } - private PatMedInhosp buildPatientInhospInfo(ServiceSLTDInhospResDTO dto, PatArchive patArchive, String cry) { + private PatMedInhosp buildPatientInhospInfo(ServiceSLTDInhospResDTO dto, PatArchive patArchive, String cry, Long orgid) { + log.info("----------------buildPatientInhospInfo杩欓噷杩涙潵浜嗗悧锛焮}", cry); PatMedInhosp patMedInhosp = new PatMedInhosp(); patMedInhosp.setPatid(patArchive.getId()); patMedInhosp.setPatno(patArchive.getPatientno()); @@ -295,7 +487,8 @@ patMedInhosp.setNurseName(dto.getChiefNurseName()); patMedInhosp.setSerialnum(dto.getHealthcareRecordNo()); patMedInhosp.setFuflag("1"); - patMedInhosp.setInhospstate("0".equals(cry) ? "0" : "1"); + if ("0".equals(cry)) patMedInhosp.setInhospstate("0"); + if ("1".equals(cry)) patMedInhosp.setInhospstate("1"); patMedInhosp.setHospitalcode(dto.getOrgId()); patMedInhosp.setBedNo(dto.getBedNumber()); patMedInhosp.setStarttime(parseDate(dto.getStartTime())); @@ -311,7 +504,7 @@ patMedInhosp.setDrcode("" + dto.getDoctorId()); patMedInhosp.setSchemestatus("0".equals(cry) ? 1L : 2L); patMedInhosp.setDelFlag("0"); - patMedInhosp.setOrgid("1"); + patMedInhosp.setOrgid("" + orgid); return patMedInhosp; } @@ -338,12 +531,12 @@ patMedInhosp.setHospitaldistrictname(dto.getAreaName()); } - private PatArchive processPatientArchive(ServiceSLTDInhospResDTO dto) { + private PatArchive processPatientArchive(ServiceSLTDInhospResDTO dto, Long orgid) { PatArchive queryArchive = new PatArchive(); - queryArchive.setIdcardno(dto.getIdCardNo().trim()); + queryArchive.setIdcardno(StringUtils.isEmpty(dto.getIdCardNo()) ? "" + dto.getMedicalCardId() : dto.getIdCardNo().trim()); List<PatArchive> existingArchives = patArchiveService.selectPatArchiveList(queryArchive); - PatArchive patArchive = buildPatientArchive(dto); + PatArchive patArchive = buildPatientArchive(dto, orgid); if (CollectionUtils.isEmpty(existingArchives)) { patArchiveService.insertPatArchive(patArchive); @@ -357,10 +550,10 @@ return patArchive; } - private PatArchive buildPatientArchive(ServiceSLTDInhospResDTO dto) { + private PatArchive buildPatientArchive(ServiceSLTDInhospResDTO dto, Long orgid) { PatArchive patArchive = new PatArchive(); - patArchive.setPatientno(dto.getMedicalRecordNo()); - patArchive.setIdcardno(dto.getIdCardNo().trim()); + patArchive.setPatientno("" + dto.getPatientId()); + patArchive.setIdcardno(StringUtils.isEmpty(dto.getIdCardNo()) ? "" + dto.getMedicalCardId() : dto.getIdCardNo().trim()); patArchive.setName(dto.getPatientName()); patArchive.setSourcefrom(2); patArchive.setPattype("2"); @@ -376,6 +569,7 @@ patArchive.setDelFlag("0"); patArchive.setCreateTime(new Date()); patArchive.setUpdateTime(new Date()); + patArchive.setOrgid("" + orgid); return patArchive; } @@ -485,7 +679,12 @@ private String getStringValue(Map<String, Object> map, String key) { Object value = map.get(key); - return value != null ? value.toString() : null; + if (value == null) { + return null; + } + + // 鍙鐞嗘暟瀛楃被鍨嬶紝閬垮厤绉戝璁℃暟娉� + return value instanceof Number ? new BigDecimal(value.toString()).toPlainString() : value.toString(); } private Long getLongValue(Map<String, Object> map, String key) { -- Gitblit v1.9.3