From 9dd748e0352f31b6255be2860c177db0d20ac40e Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 21 十月 2025 14:41:35 +0800
Subject: [PATCH] Merge branch 'master' into 0929-master
---
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