From 1dc040a15692730e3e2a32992e48d3950fb61444 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 05 十一月 2025 18:03:38 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java |   79 +++++++++++++++++++++++++++++++--------
 1 files changed, 63 insertions(+), 16 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 408e684..2c40db6 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -6,6 +6,7 @@
 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.DtoConversionUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.http.HttpUtils;
 import com.smartor.domain.*;
@@ -16,6 +17,7 @@
 import com.sun.org.apache.bcel.internal.generic.NEW;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@@ -123,7 +125,8 @@
             log.info("-----------dataList鎺ュ彛鍝嶅簲缁撴灉锛歿}", dataList.size());
             for (Map<String, Object> dataItem : dataList) {
                 SysDept sysDept = new SysDept();
-                sysDept.setOrgid("" + serviceSLTDDeptReqVO.getCampusIds().get(0));
+                sysDept.setOrgid("" + getLongValue(dataItem, "orgId"));
+                sysDept.setCampusid("" + getLongValue(dataItem, "campusId"));
                 sysDept.setHisDeptId("" + getLongValue(dataItem, "deptId"));
                 sysDept.setHisParentId(getStringValue(dataItem, "parentDeptId"));
                 //閫氳繃his鐨勭埗绉戝ID鍘绘壘鍒扮瀹D,濉厖parentId
@@ -222,27 +225,38 @@
             sysUser.setUpdateBy("admin");
             sysUser.setCreateBy("admin");
             sysUser.setCreateBy("admin");
-            sysUser.setOrgid(reqVO.getCampusId().toString());
+            sysUser.setOrgid("" + getLongValue(dataItem, "orgId"));
+//            sysUser.setCampusid("" + getLongValue(dataItem, "cmpusId"));
             BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
             sysUser.setPassword(passwordEncoder.encode(userPwd));
 
-            sysUser2Mapper.insertUser(sysUser);
+            SysUser sysUser1 = sysUser2Mapper.selectUserByUserName(sysUser.getUserName());
+            if (ObjectUtils.isNotEmpty(sysUser1)) {
+                sysUser.setUserId(sysUser1.getUserId());
+                sysUser2Mapper.updateUser(sysUser);
+            } else {
+                sysUser2Mapper.insertUser(sysUser);
+            }
 
             // 澶勭悊鐢ㄦ埛涓庨儴闂ㄧ殑鍏崇郴
-            List personnelDepts = (List<?>) dataItem.get("personnelDepts");
-            if (CollectionUtils.isEmpty(personnelDepts)) {
+            List businessDepts = (List<?>) dataItem.get("businessDepts");
+            if (CollectionUtils.isEmpty(businessDepts)) {
                 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;
+            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(personnelDeptMap, "deptId");
+                    String hisDeptId = getStringValue(businessDeptMap, "deptId");
+                    log.info("------hisDeptId鏄惁鏈夊�硷細{}, reqVO.getOrgId()鐨勫�间负:{}", hisDeptId, reqVO.getCampusId());
                     //鍦ㄨ繖閲岋紝hisDeptId灏辨槸deptCode
-                    SysDept sysDept = sysDeptMapper.selectDeptByCode(hisDeptId, reqVO.getCampusId().toString());
+                    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());
@@ -253,7 +267,21 @@
                     sysUserDept.setOrgid(sysDept.getOrgid());
                     sysUserDept.setCreateTime(new Date());
                     sysUserDept.setDelFlag(0L);
-                    sysUserDeptMapper.insertSysUserDept(sysUserDept);
+
+                    //鍒ゆ柇涓�涓嬫槸涓嶆槸宸茬粡瀛樺湪浜�
+                    if (ObjectUtils.isNotEmpty(sysUser1) && ObjectUtils.isNotEmpty(sysDept)) {
+                        SysUserDept sud = new SysUserDept();
+                        sud.setUserId(sysUser1.getUserId());
+                        sud.setDeptId(sysDept.getDeptId());
+                        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")) {
@@ -273,9 +301,13 @@
             sur.setUserId(sysUser.getUserId());
             sur.setRoleId(3L);
             sur.setOrgid(sysUser.getOrgid());
+
+            //鍏堟煡璇竴涓嬶紝鏄惁瀛樺湪
+            SysUserRole sysUserRole = sysUserRoleMapper.selectUserRoleByRoleIdAndUserId(sysUser.getUserId(), 3L);
+            if (ObjectUtils.isNotEmpty(sysUserRole)) continue;
+
             userRoleList.add(sur);
             sysUserRoleMapper.batchUserRole(userRoleList);
-
         }
 
         return true;
@@ -409,6 +441,10 @@
             if (Objects.isNull(dto)) continue;
             PatArchive patArchive = processPatientArchive(dto, orgid);
             PatMedOuthosp patMedOuthosp = buildPatMedOuthosp(dto, patArchive, orgid);
+            //鏌ヨ褰撳墠鏂板鐨勯棬鎬ヨ瘖鏁版嵁锛屾槸鍚﹀湪杩囨浮琛ㄤ腑鏄惁瀛樺湪锛屽鏋滃瓨鍦紝灏变笉寰�闂ㄦ�ヨ瘖琛ㄩ噷鏂板浜�
+            PatMedOuthospProvisional pmop = DtoConversionUtils.sourceToTarget(patMedOuthosp, PatMedOuthospProvisional.class);
+
+
             patMedOuthospMapper.insertPatMedOuthosp(patMedOuthosp);
         }
         return true;
@@ -432,7 +468,8 @@
         patMedOuthosp.setMainsuit(dto.getDiagnosisName());
         patMedOuthosp.setHpi(null);
         patMedOuthosp.setCreateTime(new Date());
-        patMedOuthosp.setOrgid("" + orgid);
+        patMedOuthosp.setOrgid(dto.getOrgId());
+        patMedOuthosp.setCampusid(dto.getCampusId());
         return patMedOuthosp;
     }
 
@@ -462,9 +499,16 @@
         PatMedInhosp queryInhosp = new PatMedInhosp();
         queryInhosp.setPatno(patArchive.getPatientno());
         queryInhosp.setSerialnum(patMedInhosp.getSerialnum());
-        queryInhosp.setOrgid("" + orgid);
+        queryInhosp.setOrgid(dto.getOrgId());
+        queryInhosp.setCampusid(dto.getCampusId());
+        queryInhosp.setInhospstate(cry);
         log.info("----------------杩欓噷鐨勫叆鍙備负锛歿}", queryInhosp);
         List<PatMedInhosp> existingInhosps = patMedInhospService.selectPatMedInhospList(queryInhosp);
+
+        if (cry.equals("0") && CollectionUtils.isNotEmpty(existingInhosps)) {
+            //鏂板杩囩殑鍏ラ櫌鏁版嵁锛屼笉鍐嶅鐞�
+            return;
+        }
 
         log.info("----------------杩欓噷鐨勮繑鍙備负锛歿}", existingInhosps);
         if (CollectionUtils.isNotEmpty(existingInhosps)) {
@@ -504,7 +548,8 @@
         patMedInhosp.setDrcode("" + dto.getDoctorId());
         patMedInhosp.setSchemestatus("0".equals(cry) ? 1L : 2L);
         patMedInhosp.setDelFlag("0");
-        patMedInhosp.setOrgid("" + orgid);
+        patMedInhosp.setOrgid(dto.getOrgId());
+        patMedInhosp.setCampusid(dto.getCampusId());
         return patMedInhosp;
     }
 
@@ -569,13 +614,15 @@
         patArchive.setDelFlag("0");
         patArchive.setCreateTime(new Date());
         patArchive.setUpdateTime(new Date());
-        patArchive.setOrgid("" + orgid);
+        patArchive.setOrgid("" + dto.getOrgId());
+        patArchive.setCampusid(dto.getCampusId());
         return patArchive;
     }
 
     private ServiceSLTDInhospResDTO convertToDTO(Map<String, Object> dataItem) {
         ServiceSLTDInhospResDTO dto = new ServiceSLTDInhospResDTO();
         dto.setOrgId(getStringValue(dataItem, "orgId"));
+        dto.setCampusId(getStringValue(dataItem, "campusId"));
         dto.setHealthcareRecordId(getLongValue(dataItem, "healthcareRecordId"));
         dto.setHealthcareRecordNo(getStringValue(dataItem, "healthcareRecordNo"));
         dto.setPatientId(getLongValue(dataItem, "patientId"));

--
Gitblit v1.9.3