陈昶聿
2 天以前 8df388ede674abf94c0ba03995036d249f2a662d
smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -1,8 +1,10 @@
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.StringUtils;
@@ -40,6 +42,8 @@
    private SysDept2Mapper sysDeptMapper;
    @Autowired
    private SysUser2Mapper sysUserMapper;
    @Autowired
    private SysUserDeptMapper sysUserDeptMapper;
    @Autowired
    private BaseOrganizationMapper baseOrganizationMapper;
    @Autowired
@@ -132,6 +136,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 +185,116 @@
        return true;
    }
    @Override
    public Boolean addUserDeptInfo(Map dataMap) {
        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对应的user信息
        SysUser sysUser = null;
        SysUser sysUserVo = new SysUser();
        sysUserVo.setUserName(externalUserDeptInfo.getYongHuDLM());
        sysUserVo.setOrgid(externalUserDeptInfo.getZuZhiJGID());
        //丽水无院区,默认值是 1
        sysUserVo.setCampusid("1");
        //根据userName判断一下,是不是之前有新增
        List<SysUser> sysUserList = sysUserMapper.selectUserList(sysUserVo);
        if (CollectionUtils.isNotEmpty(sysUserList)) {
            sysUser = sysUserList.get(0);
        }
        //获取当前科室hisDeptId对应的dept信息
        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("2");
            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());
                //和queryHospUserInfoList采集的数据格式保持一致
                List<List<String>> userDeptsList = new ArrayList<>();
                if(!sysUserDeptList.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;
@@ -1781,6 +1896,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);