From a3f50d850d8834f73922af5a9caccde28188f719 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 11 三月 2026 17:25:05 +0800
Subject: [PATCH] 【丽水】新增科室用户信息接口输入 推流失败bug处理
---
smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java | 199 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 198 insertions(+), 1 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
index 14e304c..1a003c6 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -1,12 +1,16 @@
package com.smartor.service.impl;
import cn.hutool.core.bean.BeanUtil;
+import com.google.gson.Gson;
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.redis.RedisCache;
import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.smartor.domain.*;
+import com.smartor.domain.entity.ServiceSubtaskEntity;
import com.smartor.mapper.*;
import com.smartor.service.IServiceExternalService;
import lombok.extern.slf4j.Slf4j;
@@ -40,6 +44,8 @@
private SysDept2Mapper sysDeptMapper;
@Autowired
private SysUser2Mapper sysUserMapper;
+ @Autowired
+ private SysUserDeptMapper sysUserDeptMapper;
@Autowired
private BaseOrganizationMapper baseOrganizationMapper;
@Autowired
@@ -132,6 +138,7 @@
log.info("ServiceExternalServiceImpl---addUserInfo鐨勬柊澧炵殑鍊间负锛歿}", dataMap);
Map yeWuXX = (Map) dataMap.get("YeWuXX");
Map<String, Object> yongHuXX = (Map<String, Object>) yeWuXX.get("YongHuXX");
+
ExternalUserInfo externalUserInfo = BeanUtil.mapToBean(yongHuXX, ExternalUserInfo.class, true);
if (ObjectUtils.isEmpty(externalUserInfo)) {
throw new BaseException("externalUserInfo鏄┖鐨勶紝娌℃湁鏁版嵁锛侊紒锛�");
@@ -180,6 +187,118 @@
return true;
}
+ @Override
+ public Boolean addUserDeptInfo(Map dataMap) {
+ //todo
+ log.info("ServiceExternalServiceImpl---addUserDeptInfo鐨勬柊澧炵殑鍊间负锛歿}", dataMap);
+ Map yeWuXX = (Map) dataMap.get("YeWuXX");
+ Map<String, Object> keShiYH = (Map<String, Object>) yeWuXX.get("KeShiYH");
+
+ ExternalUserDeptInfo externalUserDeptInfo = BeanUtil.mapToBean(keShiYH, ExternalUserDeptInfo.class, true);
+ if (ObjectUtils.isEmpty(externalUserDeptInfo)) {
+ throw new BaseException("externalUserDeptInfo鏄┖鐨勶紝娌℃湁鏁版嵁锛侊紒锛�");
+ }
+
+ //鑾峰彇褰撳墠鐢ㄦ埛Name瀵瑰簲鐨剈ser淇℃伅
+ SysUser sysUser = null;
+ SysUser sysUserVo = new SysUser();
+// sysUserVo.setUserName(externalUserDeptInfo.getYongHuDLM());
+ sysUserVo.setHisUserId(externalUserDeptInfo.getYongHuID());
+ sysUserVo.setOrgid(externalUserDeptInfo.getZuZhiJGID());
+ //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+ sysUserVo.setCampusid("1");
+ //鏍规嵁userName鍒ゆ柇涓�涓嬶紝鏄笉鏄箣鍓嶆湁鏂板
+ List<SysUser> sysUserList = sysUserMapper.selectUserList(sysUserVo);
+ if (CollectionUtils.isNotEmpty(sysUserList)) {
+ sysUser = sysUserList.get(0);
+ }
+
+ //鑾峰彇褰撳墠绉戝hisDeptId瀵瑰簲鐨刣ept淇℃伅
+ SysDept sysDept = null;
+ SysDept sysDeptVo = new SysDept();
+ sysDeptVo.setOrgid(externalUserDeptInfo.getZuZhiJGID());
+ //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+ sysDeptVo.setCampusid("1");
+ sysDeptVo.setHisDeptId(externalUserDeptInfo.getKeShiID());
+ List<SysDept> sysDepts = sysDeptMapper.selectDeptList(sysDeptVo);
+ if (CollectionUtils.isNotEmpty(sysDepts)) {
+ sysDept = sysDepts.get(0);
+ }
+ if(ObjectUtils.isEmpty(sysUser)){
+ log.error("ServiceExternalServiceImpl---addUserDeptInfo 鎵句笉鍒板搴旂殑鐢ㄦ埛 username: {}", externalUserDeptInfo.getYongHuDLM());
+ return false;
+ }else if(ObjectUtils.isEmpty(sysDept)){
+ log.error("ServiceExternalServiceImpl---addUserDeptInfo 鎵句笉鍒板搴旂殑绉戝 hisDeptId: {}", externalUserDeptInfo.getKeShiID());
+ return false;
+ }else {
+ SysUserDept sysUserDept = new SysUserDept();
+ sysUserDept.setDelFlag(0L);
+ sysUserDept.setUserId(sysUser.getUserId());
+ sysUserDept.setUserCode(sysUser.getUserCode());
+ sysUserDept.setDeptType(sysDept.getDeptType());
+ sysUserDept.setGuid(externalUserDeptInfo.getZuZhiJGID());
+ sysUserDept.setDeptId(sysDept.getDeptId());
+ sysUserDept.setDeptCode(sysDept.getDeptCode());
+ sysUserDept.setDeptName(sysDept.getDeptName());
+ sysUserDept.setOrgid(externalUserDeptInfo.getZuZhiJGID());
+ sysUserDept.setCampusid("1");
+
+ sysUserDept.setCreateBy(externalUserDeptInfo.getChuangJianRXM());
+ sysUserDept.setCreateTime(externalUserDeptInfo.getChuangJianSJ());
+ sysUserDept.setUpdateTime(externalUserDeptInfo.getXiuGaiSJ());
+ sysUserDept.setUpdateBy(externalUserDeptInfo.getXiuGaiRXM());
+
+ if (StringUtils.isNotEmpty(externalUserDeptInfo.getShiJianDM()) && externalUserDeptInfo.getShiJianDM().equals("3")) {
+ sysUserDept.setDelFlag(1L);
+ }
+ SysUserDept sysUserDeptVo = new SysUserDept();
+ sysUserDeptVo.setUserId(sysUser.getUserId());
+ sysUserDeptVo.setDeptId(sysDept.getDeptId());
+ sysUserDeptVo.setOrgid(externalUserDeptInfo.getZuZhiJGID());
+ //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+ sysUserDeptVo.setCampusid("1");
+ //鏍规嵁userName鍒ゆ柇涓�涓嬶紝鏄笉鏄箣鍓嶆湁鏂板
+ SysUserDept sysUserDeptOld = null;
+ List<SysUserDept> sysUserDeptList = sysUserDeptMapper.selectSysUserDeptList(sysUserDeptVo);
+ if (CollectionUtils.isNotEmpty(sysUserDeptList)) {
+ sysUserDeptOld = sysUserDeptList.get(0);
+ }
+ if (ObjectUtils.isEmpty(sysUserDeptOld)) {
+ int i = sysUserDeptMapper.insertSysUserDept(sysUserDept);
+ log.info("ServiceExternalServiceImpl---addUserDeptInfo鏄惁鏂板鎴愬姛锛歿}", i);
+ } else {
+ sysUserDept.setUserId(sysUserDeptOld.getUserId());
+ int i = sysUserDeptMapper.updateSysUserDept(sysUserDept);
+ log.info("ServiceExternalServiceImpl---addUserDeptInfo鏄惁淇敼鎴愬姛03锛歿}", i);
+ }
+ //鏇存柊sys-user deptId
+ if(StringUtils.isNotEmpty(externalUserDeptInfo.getKeShiID())){
+ sysUser.setDeptId(Long.valueOf(externalUserDeptInfo.getKeShiID()));
+ //鏌ヨ鐢ㄦ埛绉戝鍏崇郴
+ SysUserDept sysUserDeptTemp = new SysUserDept();
+ sysUserDeptTemp.setUserId(sysUser.getUserId());
+ sysUserDeptTemp.setOrgid(externalUserDeptInfo.getZuZhiJGID());
+ List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sysUserDeptTemp);
+ List<String> userDepts = sysUserDepts.stream().map(SysUserDept::getDeptCode).
+ distinct().collect(Collectors.toList());
+ //鍜宷ueryHospUserInfoList閲囬泦鐨勬暟鎹牸寮忎繚鎸佷竴鑷�
+ List<List<String>> userDeptsList = new ArrayList<>();
+ if(!userDepts.isEmpty()){
+ for(String userDept: userDepts){
+ List<String> uDept = new ArrayList<>();
+ uDept.add(userDept);
+ userDeptsList.add(uDept);
+ }
+ }
+ //灏嗛儴闂ㄦ垜鐥呭尯鏀惧埌鎸囧畾瀛楁涓�
+ Gson gson = new Gson();
+ sysUser.setHospInfo(gson.toJson(userDeptsList));
+
+ sysUserMapper.updateUser(sysUser);
+ }
+ }
+ return true;
+ }
private SysUser getUser(List<SysUser> sysUserList) {
SysUser sysUser = null;
@@ -393,6 +512,8 @@
ExternalInHospPatientAddrInfo externalInHospPatientAddrInfo = null;
ExternalInHospPatientLiaisonInfo externalInHospPatientLiaisonInfo = null;
List<ExternalInHospPatientAddrInfo> epai2 = null;
+ //姝讳骸鏍囪
+ Boolean deathFlag = false;
if (CollectionUtils.isNotEmpty(epai)) {
epai2 = epai.stream().map(map -> {
ExternalInHospPatientAddrInfo info = new ExternalInHospPatientAddrInfo();
@@ -454,6 +575,14 @@
patMedInhosp1.setNurseName(ObjectUtils.isNotEmpty(JiuZhenXX.get("ZeRenHSXM")) ? JiuZhenXX.get("ZeRenHSXM").toString() : null);
patMedInhosp1.setNurseId(ObjectUtils.isNotEmpty(JiuZhenXX.get("ZeRenHSID")) ? JiuZhenXX.get("ZeRenHSID").toString() : null);
patMedInhosp1.setBedNo(ObjectUtils.isNotEmpty(JiuZhenXX.get("DangQianCWMC")) ? JiuZhenXX.get("DangQianCWMC").toString() : null);
+
+ //绂婚櫌鏂瑰紡浠g爜 1-鍖荤灘绂婚櫌 2-鍖诲槺杞櫌 3-鍖诲槺杞ぞ鍖哄崼鐢熸湇鍔℃満鏋�/涔¢晣鍗敓闄�
+ // 4-闈炲尰鍢辩闄� 5-姝讳骸 9-鍏朵粬 10-浠嬪叆瀹� 20-鎵嬫湳瀹�
+ String liYuanQxdm = ObjectUtils.isNotEmpty(JiuZhenXX.get("LiYuanQXDM")) ? JiuZhenXX.get("LiYuanQXDM").toString() : null;
+ //鍒ゆ柇鐥呬汉鏄惁姝讳骸
+ if(ObjectUtils.isNotEmpty(liYuanQxdm) &&("5").equals(liYuanQxdm)){
+ deathFlag = true;
+ }
}
patMedInhosp1.setUpdateTime(new Date());
patMedInhosp1.setTelcode(patArchive.getTelcode());
@@ -497,6 +626,23 @@
}
patMedInhosp1.setInhospstate("1");
+ if(deathFlag){
+ //鐥呬汉姝讳骸鏃犻』闅忚
+ patMedInhosp1.setFuflag("1");
+ //鏇存柊鐥呬汉 notrequiredFlag
+ patArchive.setNotrequiredFlag("1");
+ patArchiveMapper.updatePatArchive(patArchive);
+ //瀵瑰凡缁忕敓鎴愮殑闅忚浠诲姟杩涜澶勭悊
+ ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
+ serviceSubtaskVO.setPatid(patArchive.getId());
+ serviceSubtaskVO.setSendstate(2L);
+ List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
+ for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
+ serviceSubtask.setSendstate(6L);
+ serviceSubtask.setRemark(serviceSubtask.getRemark() + ";鐥呬汉宸叉浜★紝涓嶉殢璁�");
+ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
+ }
+ }
if (CollectionUtils.isNotEmpty(patMedInhospList)) {
patMedInhosp1.setUpdateTime(new Date());
patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
@@ -708,7 +854,7 @@
int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
//鍙栨秷鍑洪櫌锛屽氨涓嶉渶瑕佹湇鍔′簡锛岄渶瑕侀�氳繃patid鍜宻endstate=2鎴栬�卻endstate=1鍘绘煡璇竴涓嬶紝service_subtask閲屾槸鍚︽湁姝e湪鎵ц鐨勪换鍔★紝鏈夌殑璇濓紝绔嬪嵆鍋滀簡
- ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
+ ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
serviceSubtaskVO.setPatid(patMedInhosp1.getPatid());
serviceSubtaskVO.setSendstate(2L);
List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
@@ -882,6 +1028,50 @@
return true;
}
+ /**
+ * 鐩墠锛屼粠鎬ヨ瘖鎶㈡晳鍚庤浆鍏ヤ綇闄㈢殑鎮h�咃紝鍏舵暟鎹噰闆嗗瓨鍦ㄤ竴涓棶棰橈細鏈変袱鏉″叆闄㈣褰曘��
+ * 绗竴鏉★紙鎬ヨ瘖绉戝鐨勶級璁板綍缂哄皯鈥滃嚭闄㈡椂闂粹�濓紝瀵艰嚧璇ヨ褰曞湪缁熻涓缁堟樉绀轰负鈥滃湪闄⑩�濓紝
+ * 鑰岀浜屾潯锛堣浆鍏ョ瀹ょ殑锛夎褰曟槸瀹屾暣鐨勩�傛垜浠渶瑕侀噰闆� JZ_ZY_LiQiang鎺ュ彛鐨勬暟鎹紝
+ * 閲岄潰鐨勭鎶㈡椂闂存潵鍙嶅~绗竴鏉¤褰曠殑鈥滃嚭闄㈡椂闂粹�濓紝浠庤�屼慨姝g涓�鏉¤褰曠殑鐘舵�併��
+ * @param dataMap
+ * @return
+ */
+ @Override
+ public Boolean editRescueFinishedOutHospInfo(Map dataMap) {
+ log.info("ServiceExternalServiceImpl---editRescueFinishedOutHospInfo鐨勬柊澧炵殑鍊间负锛歿}", dataMap);
+ Map yeWuXX = (Map) dataMap.get("YeWuXX");
+ //鐥呬汉淇℃伅
+ Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
+ //灏辫瘖淇℃伅
+ Map<String, Object> JiuZhenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("JiuZhenXX") : null;
+
+ ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true);
+ PatMedInhosp patMedInhosp = new PatMedInhosp();
+ patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao());
+ patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
+ List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
+ PatMedInhosp patMedInhosp1 = null;
+ if (CollectionUtils.isNotEmpty(patMedInhospList)) patMedInhosp1 = patMedInhospList.get(0);
+ if(ObjectUtils.isNotEmpty(patMedInhosp1)){
+ if (ObjectUtils.isNotEmpty(JiuZhenXX.get("LiQiangSJ"))) {
+ try {
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ patMedInhosp1.setEndtime(simpleDateFormat.parse(JiuZhenXX.get("LiQiangSJ").toString()));
+ patMedInhosp1.setUpdateTime(new Date());
+ //鏇存柊鍑洪櫌鐘舵��
+ patMedInhosp1.setInhospstate("1");
+ int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+ if (i != 1) return false;
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+ return true;
+ }else {
+ log.error("ServiceExternalServiceImpl---editRescueFinishedOutHospInfo鐨勬病鏈夋壘鍒板搴旂殑鍑洪櫌璁板綍锛歿}", dataMap);
+ return false;
+ }
+ }
@Override
public Boolean addFinshJZInfo(Map dataMap) {
log.info("ServiceExternalServiceImpl---addFinshJZInfo鐨勬柊澧炵殑鍊间负锛歿}", dataMap);
@@ -938,6 +1128,7 @@
pa.setAge2(ObjectUtils.isNotEmpty(map.get("age2")) ? Long.valueOf(map.get("age2")) : null);
pa.setAgeUnit2(map.get("ageUnit2"));
patMedOuthosp1.setAge(pa.getAge() + pa.getAgeUnit() + pa.getAge2() + pa.getAgeUnit2());
+ patMedOuthosp1.setSex(patArchive.getSex());
patMedOuthosp1.setTelcode(patArchive.getTelcode());
patMedOuthosp1.setIdcardno(patArchive.getIdcardno());
}
@@ -1780,6 +1971,9 @@
case "JG_YH_JiBenXX":
log.info("鐢ㄦ埛淇℃伅鍏ュ弬绫诲瀷涓猴細{}", type);
return addUserInfo(dataMap);
+ case "JG_YH_KeShiYH":
+ log.info("绉戝鐢ㄦ埛淇℃伅鍏ュ弬绫诲瀷涓猴細{}", type);
+ return addUserDeptInfo(dataMap);
case "fu_task":
log.info("fu_task鏈嶅姟鍏ュ弬绫诲瀷涓猴細{}", type);
return addTaskInfo(dataMap);
@@ -1810,6 +2004,9 @@
case "JZ_ZY_YuChuYuan":
log.info("鎮h�呴鍑洪櫌鍏ュ弬绫诲瀷涓猴細{}", type);
return addPreOutHospInfo(dataMap);
+ case "JZ_ZY_LiQiang":
+ log.info("鎮h�呯鎶㈠叆鍙傜被鍨嬩负锛歿}", type);
+ return editRescueFinishedOutHospInfo(dataMap);
case "JG_ZZ_BingQu":
log.info("鐥呭尯淇℃伅鍏ュ弬绫诲瀷涓猴細{}", type);
return addWardAreaInfo(dataMap);
--
Gitblit v1.9.3