From 11af23e0c7976eed1211ba2ca0beae3a12e19310 Mon Sep 17 00:00:00 2001
From: lxp <1928192722@qq.com>
Date: 星期三, 12 三月 2025 15:37:47 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 73 insertions(+), 0 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java
index f097b32..db10443 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java
@@ -1,17 +1,27 @@
 package com.ruoyi.system.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.entity.Custom;
 import com.ruoyi.common.core.domain.entity.User;
+import com.ruoyi.common.core.dto.PersonDto;
 import com.ruoyi.common.utils.QueryWrappers;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.system.mapper.UserMapper;
+import com.ruoyi.system.service.CustomService;
 import com.ruoyi.system.service.UserService;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.DigestUtils;
 
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 鐢ㄦ埛淇℃伅琛�
@@ -21,6 +31,10 @@
  */
 @Service
 public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
+
+    @Autowired
+    private CustomService customService;
+
     /**
      * 鏍规嵁鏉′欢鑾峰彇鐢ㄦ埛鍒楄〃
      * @param user
@@ -60,5 +74,64 @@
     public int delUserDepardLimsId(Integer id) {
         return baseMapper.update(null, Wrappers.<User>lambdaUpdate().eq(User::getId, id).set(User::getDepartLimsId, null).set(User::getUpdateTime, LocalDateTime.now()).set(User::getUpdateBy, SecurityUtils.getUsername()));
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int addPersonUser(PersonDto personDto) {
+        personDto.getPerson().forEach(person -> {
+            User user = baseMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getAccount, person.getEmployeeID()));
+            String companyName = personDto.getCompany().stream().filter(a -> a.getCompanyId().equals(person.getCompanyId())).findFirst().get().getCompanyName();
+            Custom custom = customService.getCustomId(companyName);
+            if (BeanUtil.isEmpty(user)) {
+                user = new User();
+                user.setName(person.getName());
+                user.setNameEn("not write");
+                user.setAccount(person.getEmployeeID());
+                user.setPhone(person.getPhoneNumber());
+                user.setEmail(person.getCompanyEmail());
+                user.setIsCustom(person.getCompanyId().equals("SC2463") ? 0 : 1);
+//                user.setPassword(DigestUtils.md5DigestAsHex(headerToken.getPassword(person.getEmployeeID()).getBytes()));
+                user.setPassword(SecurityUtils.encryptPassword("zttZTT123!"));
+                user.setCompany(BeanUtil.isNotEmpty(custom) ? (custom.getId() + "") : companyName);
+//                user.setAddress("鏈~鍐�");
+//                user.setRoleId(personDto.getRoleId() > 10000 ? 0 : personDto.getRoleId());
+                user.setCompanyId(person.getCompanyId());
+                baseMapper.insert(user);
+            } else {
+                user.setName(person.getName());
+                user.setPhone(person.getPhoneNumber());
+                user.setEmail(person.getCompanyEmail());
+                user.setIsCustom(0);
+                user.setCompany(BeanUtil.isNotEmpty(custom) ? (custom.getId() + "") : companyName);
+//                user.setCreateUser(null);
+//                user.setCreateTime(null);
+//                user.setUpdateUser(null);
+//                user.setUpdateTime(null);
+                user.setCompanyId(person.getCompanyId());
+                baseMapper.updateById(user);
+            }
+        });
+        return 1;
+    }
+
+    @Override
+    public Map<String, List<Map<String, Object>>> getLaboratoryPersonList() {
+        //鏌ヨ閫氫俊鍜岀數鍔涗笅鐨勪汉鍛樹俊鎭�
+        //鏌ヨ褰撳墠鐧诲綍浜哄憳鐨勬灦鏋�
+        //鍒ゆ柇鍏ㄩ儴,涓汉,缁勭粐鐨勬潈闄�
+        User user = baseMapper.selectById(SecurityUtils.getUserId());//褰撳墠鐧诲綍鐨勪汉
+        //鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id
+        String laboratory = "";
+        String departLimsId = user.getDepartLimsId();
+        if (ObjectUtils.isNotEmpty(departLimsId)) {
+            String[] split = departLimsId.split(",");
+            //鏌ヨ瀵瑰簲鏋舵瀯鍚嶇О(閫氫俊瀹為獙瀹�,鐢靛姏瀹為獙瀹�,妫�娴嬪姙)
+            String departLims = baseMapper.seldepLimsId(Integer.parseInt(split[split.length - 1]));
+            if (departLims.contains("瀹為獙瀹�")) {
+                laboratory = departLims;
+            }
+        }
+        return baseMapper.getLaboratoryPersonList(laboratory).stream().collect(Collectors.groupingBy(m->m.get("depName").toString()));
+    }
 }
 

--
Gitblit v1.9.3