陈昶聿
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;
@@ -24,10 +26,7 @@
import java.time.Period;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -43,6 +42,8 @@
    private SysDept2Mapper sysDeptMapper;
    @Autowired
    private SysUser2Mapper sysUserMapper;
    @Autowired
    private SysUserDeptMapper sysUserDeptMapper;
    @Autowired
    private BaseOrganizationMapper baseOrganizationMapper;
    @Autowired
@@ -71,6 +72,9 @@
    @Value("${defaultPwd}")
    private String defaultPwd;
    @Value("${noLongTask}")
    private List<String> noLongTask;
    public Boolean generalInterface(Map dataMap) {
        Map XiaoXiTou = (Map) dataMap.get("XiaoXiTou");
        String xiaoXiLX = XiaoXiTou.get("XiaoXiLX").toString();
@@ -80,7 +84,7 @@
    @Transactional(rollbackFor = Exception.class)
    @Override
    public Boolean addDeptInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addDeptInfo的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addDeptInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> keShiXX = (Map<String, Object>) yeWuXX.get("KeShiXX");
        ExternalDept externalDept = BeanUtil.mapToBean(keShiXX, ExternalDept.class, true);
@@ -89,6 +93,8 @@
        }
        SysDept sysDept = new SysDept();
        sysDept.setOrgid(externalDept.getZuZhiJGID());
        //丽水无院区,默认值是 1
        sysDept.setCampusid("1");
        sysDept.setHisDeptId(externalDept.getKeShiID());
        sysDept.setHisParentId(externalDept.getFuKeSID());
        //通过his的父科室ID去找到科室ID,填充parentId
@@ -117,33 +123,41 @@
        }
        if (StringUtils.isNotEmpty(externalDept.getShiJianDM()) && externalDept.getShiJianDM().equals("1")) {
            int i = sysDeptMapper.insertDept(sysDept);
            log.error("ServiceExternalServiceImpl---addDeptInfo是否新增成功:{}", i);
            log.info("ServiceExternalServiceImpl---addDeptInfo01是否新增成功:{}", i);
        } else {
            int i = sysDeptMapper.updateDept(sysDept);
            log.error("ServiceExternalServiceImpl---addDeptInfo是否修改成功:{}", i);
            log.info("ServiceExternalServiceImpl---addDeptInfo02是否修改成功:{}", i);
        }
        return true;
    }
    @Override
    public Boolean addUserInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addUserInfo的新增的值为:{}", dataMap);
        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是空的,没有数据!!!");
        }
        SysUser sysUser = new SysUser();
        sysUser.setGuid(externalUserInfo.getZuZhiJGID());
        sysUser.setUserName(externalUserInfo.getYongHuDLM());
        sysUser.setOrgid(externalUserInfo.getZuZhiJGID());
        //丽水无院区,默认值是 1
        sysUser.setCampusid("1");
        //根据userName判断一下,是不是之前有新增
        SysUser sysUser1 = null;
        List<SysUser> sysUserList = sysUserMapper.selectUserList(sysUser);
        if (CollectionUtils.isNotEmpty(sysUserList)) {
            sysUser1 = sysUserList.get(0);
            if (sysUserList.size() > 1) sysUser1 = getUser(sysUserList);
        }
        sysUser.setGuid(externalUserInfo.getZuZhiJGID());
        sysUser.setNickName(externalUserInfo.getYongHuXM());
        sysUser.setUserType("");
        sysUser.setDeptId(null);
        sysUser.setTitle(null);
        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
        sysUser.setPassword(passwordEncoder.encode(defaultPwd));
        sysUser.setHisUserId(externalUserInfo.getYongHuID());
        sysUser.setPhonenumber(externalUserInfo.getLianXiDH());
@@ -153,25 +167,158 @@
        sysUser.setCreateTime(externalUserInfo.getChuangJianSJ());
        sysUser.setUpdateTime(externalUserInfo.getXiuGaiSJ());
        sysUser.setUpdateBy(externalUserInfo.getXiuGaiRXM());
        sysUser.setOrgid(externalUserInfo.getZuZhiJGID());
        if (StringUtils.isNotEmpty(externalUserInfo.getShiJianDM()) && externalUserInfo.getShiJianDM().equals("3")) {
            sysUser.setStatus("1");
        }
        sysUser.setBirthday(externalUserInfo.getChuShengRQ());
        if (StringUtils.isNotEmpty(externalUserInfo.getShiJianDM()) && externalUserInfo.getShiJianDM().equals("1")) {
        if (ObjectUtils.isEmpty(sysUser1)) {
            BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
            sysUser.setPassword(passwordEncoder.encode(defaultPwd));
            int i = sysUserMapper.insertUser(sysUser);
            log.error("ServiceExternalServiceImpl---addDeptInfo是否新增成功:{}", i);
            log.info("ServiceExternalServiceImpl---addDeptInfo是否新增成功:{}", i);
        } else {
            sysUser.setUserId(sysUser1.getUserId());
            int i = sysUserMapper.updateUser(sysUser);
            log.error("ServiceExternalServiceImpl---addDeptInfo是否修改成功:{}", i);
            log.info("ServiceExternalServiceImpl---addDeptInfo是否修改成功03:{}", i);
        }
        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;
        if (CollectionUtils.isNotEmpty(sysUserList) && sysUserList.size() > 1) {
            // 按create_time降序排序,获取最新的记录
            List<SysUser> sortedList = sysUserList.stream().sorted(Comparator.comparing(SysUser::getCreateTime).reversed()).collect(Collectors.toList());
            // 第一条(最新的)赋值给sysUser1
            sysUser = sortedList.get(0);
            // 获取需要删除的ID(从第二条开始)
            List<Long> idsToDelete = sortedList.stream().skip(1).map(SysUser::getUserId).collect(Collectors.toList());
            Long[] idArray = idsToDelete.toArray(new Long[0]);
            // 批量删除其他记录
            if (!idsToDelete.isEmpty()) {
                sysUserMapper.deleteUserByIds(idArray);
            }
        }
        return sysUser;
    }
    @Override
    public Boolean addOrganInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addOrganInfo的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addOrganInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> ZuZhiJGXX = (Map<String, Object>) yeWuXX.get("ZuZhiJGXX");
        ExternalOrganInfo externalOrganInfo = BeanUtil.mapToBean(ZuZhiJGXX, ExternalOrganInfo.class, true);
@@ -186,19 +333,21 @@
        baseOrganization.setUpdateTime(externalOrganInfo.getUpdateTime());
        baseOrganization.setUpdateBy(externalOrganInfo.getUpdateBy());
        baseOrganization.setOrgid(externalOrganInfo.getZuZhiJGID());
        //丽水无院区,默认值是 1
        baseOrganization.setCampusid("1");
        if (StringUtils.isNotEmpty(externalOrganInfo.getShiJianDM()) && externalOrganInfo.getShiJianDM().equals("1")) {
            int i = baseOrganizationMapper.insertBaseOrganization(baseOrganization);
            log.error("ServiceExternalServiceImpl---addOrganInfo是否新增成功:{}", i);
            log.info("ServiceExternalServiceImpl---addOrganInfo是否新增成功:{}", i);
        } else {
            int i = baseOrganizationMapper.updateBaseOrganization(baseOrganization);
            log.error("ServiceExternalServiceImpl---addOrganInfo是否修改成功:{}", i);
            log.info("ServiceExternalServiceImpl---addOrganInfo是否修改成功:{}", i);
        }
        return true;
    }
    @Override
    public Boolean addCheckupReport(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addCheckupReport的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addCheckupReport的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> ZuZhiJGXX = (Map<String, Object>) yeWuXX.get("ZuZhiJGXX");
        return false;
@@ -206,7 +355,7 @@
    @Override
    public Boolean addInHospInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addInHospInfo的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addInHospInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        List<HashMap<String, Object>> epai = ObjectUtils.isNotEmpty(yeWuXX) ? (List<HashMap<String, Object>>) yeWuXX.get("DiZhiXXList") : null;
        List<HashMap<String, Object>> epli = ObjectUtils.isNotEmpty(yeWuXX) ? (List<HashMap<String, Object>>) yeWuXX.get("LianXiRList") : null;
@@ -265,7 +414,7 @@
    @Override
    public Boolean addInDeptInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addInDeptInfo的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addInDeptInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
        Map<String, Object> RuKeXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("RuKeXX") : null;
@@ -279,6 +428,8 @@
        externalInHospPatientInfo.setZhuZhiYSID(externalInDeptPatientInfo.getZhuZhiYSID());
        externalInHospPatientInfo.setZhuZhiYSXM(externalInDeptPatientInfo.getZhuZhiYSXM());
        externalInHospPatientInfo.setRuYuanSJ(externalInDeptPatientInfo.getRuYuanSJ());
        externalInHospPatientInfo.setJingGuanYSID(externalInDeptPatientInfo.getJingGuanYSID());
        externalInHospPatientInfo.setJingGuanYSXM(externalInDeptPatientInfo.getJingGuanYSXM());
        externalInHospPatientInfo.setLianXiDH(ObjectUtils.isNotEmpty(BingRenXX.get("LianXiDH")) ? BingRenXX.get("LianXiDH").toString() : null);
        externalInHospPatientInfo.setDangQianCWID(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianCWID")) ? BingRenXX.get("DangQianCWID").toString() : null);
        externalInHospPatientInfo.setDangQianCWMC(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianCWMC")) ? BingRenXX.get("DangQianCWMC").toString() : null);
@@ -315,7 +466,7 @@
    @Override
    public Boolean cancelInHospInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---cancelInHospInfo的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---cancelInHospInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
        ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true);
@@ -345,7 +496,7 @@
    @Override
    public Boolean addOutHospInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addOutHospInfo的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addOutHospInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
        Map<String, Object> ChuYuanJL = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("ChuYuanJL") : null;
@@ -391,6 +542,7 @@
        if (CollectionUtils.isNotEmpty(epli)) externalInHospPatientLiaisonInfo = epli2.get(0);
        //新增患者基本信息新增或修改
        PatArchive patArchive = addPatArchive(externalInHospPatientInfo, externalInHospPatientAddrInfo, externalInHospPatientLiaisonInfo);
        PatMedInhosp patMedInhosp = new PatMedInhosp();
        patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao());
@@ -463,6 +615,12 @@
        if (CollectionUtils.isNotEmpty(patMedInhospList)) {
            patMedInhosp1.setUpdateTime(new Date());
            patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
            //丽水无院区,默认值是 1
            patMedInhosp1.setCampusid("1");
            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) {
                //不需要长期任务随访
                patMedInhosp1.setFuflag("1");
            }
            int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
            if (i != 1) return false;
        } else {
@@ -472,6 +630,8 @@
                patMedInhosp1.setLeavehospitaldistrictname(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQMC")) ? BingRenXX.get("DangQianBQMC").toString() : null);
                patMedInhosp1.setLeavehospitaldistrictcode(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQID")) ? BingRenXX.get("DangQianBQID").toString() : null);
                patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
                //丽水无院区,默认值是 1
                patMedInhosp1.setCampusid("1");
                patMedInhosp1.setPatno(ObjectUtils.isNotEmpty(BingRenXX.get("BingRenID")) ? BingRenXX.get("BingRenID").toString() : null);
                patMedInhosp1.setInhospno(ObjectUtils.isNotEmpty(BingRenXX.get("BingAnHao")) ? BingRenXX.get("BingAnHao").toString() : null);
                patMedInhosp1.setSerialnum(ObjectUtils.isNotEmpty(BingRenXX.get("JiuZhenYWID")) ? BingRenXX.get("JiuZhenYWID").toString() : null);
@@ -480,6 +640,11 @@
            patMedInhosp1.setPatname(patArchive.getName());
            patMedInhosp1.setCreateTime(new Date());
            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) {
                //不需要长期任务随访
                patMedInhosp1.setFuflag("1");
            }
            int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1);
            if (i != 1) return false;
        }
@@ -488,7 +653,7 @@
    @Override
    public Boolean addOutHospJLInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addOutHospJLInfo的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addOutHospJLInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
        Map<String, Object> ChuYuanJL = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("ChuYuanJL") : null;
@@ -566,7 +731,8 @@
                }
            }
            try {
                patMedInhosp1.setFudate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(SuiFangJH.get("SuiFangRQ").toString()));
                if (!Objects.isNull(SuiFangJH.get("SuiFangRQ")))
                    patMedInhosp1.setFudate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(SuiFangJH.get("SuiFangRQ").toString()));
            } catch (ParseException e) {
                e.printStackTrace();
            }
@@ -596,6 +762,10 @@
        if (CollectionUtils.isNotEmpty(patMedInhospList)) {
            patMedInhosp1.setUpdateTime(new Date());
            patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) {
                //不需要长期任务随访
                patMedInhosp1.setFuflag("1");
            }
            int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
            if (i != 1) return false;
        } else {
@@ -605,6 +775,8 @@
                patMedInhosp1.setLeavehospitaldistrictname(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQMC")) ? BingRenXX.get("DangQianBQMC").toString() : null);
                patMedInhosp1.setLeavehospitaldistrictcode(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQID")) ? BingRenXX.get("DangQianBQID").toString() : null);
                patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
                //丽水无院区,默认值是 1
                patMedInhosp1.setCampusid("1");
                patMedInhosp1.setPatno(ObjectUtils.isNotEmpty(BingRenXX.get("BingRenID")) ? BingRenXX.get("BingRenID").toString() : null);
                patMedInhosp1.setInhospno(ObjectUtils.isNotEmpty(BingRenXX.get("BingAnHao")) ? BingRenXX.get("BingAnHao").toString() : null);
                patMedInhosp1.setSerialnum(ObjectUtils.isNotEmpty(BingRenXX.get("JiuZhenYWID")) ? BingRenXX.get("JiuZhenYWID").toString() : null);
@@ -613,6 +785,10 @@
            patMedInhosp1.setPatname(patArchive.getName());
            patMedInhosp1.setCreateTime(new Date());
            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedInhosp1.getOrgid())) {
                //不需要长期任务随访
                patMedInhosp1.setFuflag("1");
            }
            int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1);
            if (i != 1) return false;
        }
@@ -621,7 +797,7 @@
    @Override
    public Boolean cancelOutHospInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---cancelOutHospInfo的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---cancelOutHospInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
        ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true);
@@ -661,7 +837,7 @@
            //去redis中,查询是否有subid,有的话移除cache-exist
            if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
                for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
                    log.error("需要移除的subId为:{}", serviceSubtask.getId().toString());
                    log.info("需要移除的subId为:{}", serviceSubtask.getId().toString());
                    serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId());
                    redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString());
                    redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString());
@@ -678,7 +854,7 @@
    @Override
    public Boolean addPreOutHospInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addPreOutHospInfo的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addPreOutHospInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
        Map<String, Object> ChuYuanJL = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("ChuYuanJL") : null;
@@ -805,6 +981,8 @@
                patMedInhosp1.setLeavehospitaldistrictname(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQMC")) ? BingRenXX.get("DangQianBQMC").toString() : null);
                patMedInhosp1.setLeavehospitaldistrictcode(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQID")) ? BingRenXX.get("DangQianBQID").toString() : null);
                patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
                //丽水无院区,默认值是 1
                patMedInhosp1.setCampusid("1");
                patMedInhosp1.setPatno(ObjectUtils.isNotEmpty(BingRenXX.get("BingRenID")) ? BingRenXX.get("BingRenID").toString() : null);
                patMedInhosp1.setInhospno(ObjectUtils.isNotEmpty(BingRenXX.get("BingAnHao")) ? BingRenXX.get("BingAnHao").toString() : null);
                patMedInhosp1.setSerialnum(ObjectUtils.isNotEmpty(BingRenXX.get("JiuZhenYWID")) ? BingRenXX.get("JiuZhenYWID").toString() : null);
@@ -821,7 +999,10 @@
    @Override
    public Boolean addFinshJZInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addFinshJZInfo的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addFinshJZInfo的新增的值为:{}", dataMap);
        //先对表进行维护
        tableMaintenance();
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map XiaoXiTou = (Map) dataMap.get("XiaoXiTou");
        String FaSongJGID = ObjectUtils.isNotEmpty(XiaoXiTou.get("FaSongJGID")) ? XiaoXiTou.get("FaSongJGID").toString() : null;
@@ -863,6 +1044,20 @@
        patMedOuthosp.setOuthospno(externalInHospPatientInfo.getBingAnHao());
        patMedOuthosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
        List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.selectPatMedOuthospList(patMedOuthosp);
        for (PatMedOuthosp patMedOuthosp1 : patMedOuthosps) {
            PatArchive pa = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosp1.getPatid());
            if (patArchive.getBirthdate() != null) {
                Map<String, String> map = calculateAge(pa.getBirthdate().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now());
                pa.setAge(ObjectUtils.isNotEmpty(map.get("age")) ? Long.valueOf(map.get("age")) : null);
                pa.setAgeUnit(map.get("ageUnit"));
                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());
            }
        }
        patMedOuthosp.setPatid(patArchive.getId());
        patMedOuthosp.setPatno(externalInHospPatientInfo.getBingAnHao());
@@ -873,7 +1068,13 @@
        patMedOuthosp.setDeptcode(externalJZInfo.getJiuZhenKSID());
        patMedOuthosp.setAdmitdate(externalJZInfo.getJiuZhenRQ());
        patMedOuthosp.setOrgid(FaSongJGID);
        //丽水无院区,默认值是 1
        patMedOuthosp.setCampusid("1");
        patMedOuthosp.setHospitalname(FaSongJGMC);
        patMedOuthosp.setIdcardno(patArchive.getIdcardno());
        //这个需要等HIS那边告诉取哪个字段,现在还是不对的
        patMedOuthosp.setFudate(externalJZInfo.getSfrq());
        for (ExternalDiagnosisInfo externalDiagnosisInfo : externalDiagnosisInfoList) {
            if (externalDiagnosisInfo.getZhenDuanLBMC().equals("主诊断")) {
@@ -881,6 +1082,7 @@
                patMedOuthosp.setDrcode(externalDiagnosisInfo.getZhenDuanYSID());
                patMedOuthosp.setDrname(externalDiagnosisInfo.getZhenDuanYSXM());
                patMedOuthosp.setIcd10code(externalDiagnosisInfo.getIcd10());
                patMedOuthosp.setFuflag("0");
            }
        }
        for (ExternalWZInfo externalWZInfo : ExternalWZInfoList) {
@@ -895,22 +1097,93 @@
        if (CollectionUtils.isNotEmpty(patMedOuthosps)) {
            patMedOuthosp.setId(patMedOuthosps.get(0).getId());
            patMedOuthosp.setUpdateTime(new Date());
            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedOuthosp.getOrgid())) {
                //不需要长期任务随访,由医生自己去随访(丽水中医院首次提出)
                patMedOuthosp.setFuflag("1");
            }
            i = patMedOuthospMapper.updatePatMedOuthosp(patMedOuthosp);
        } else {
            patMedOuthosp.setCreateTime(new Date());
            patMedOuthosp.setUpdateTime(new Date());
            if (CollectionUtils.isNotEmpty(noLongTask) && noLongTask.contains(patMedOuthosp.getOrgid())) {
                //不需要长期任务随访
                patMedOuthosp.setFuflag("1");
            }
            i = patMedOuthospMapper.insertPatMedOuthosp(patMedOuthosp);
        }
//        //先通过身份证和科室查询该患者是否有需要随访的(景宁提出来的)
//        if (patMedOuthosp.getOrgid().equals("47255004333112711A1001") && StringUtils.isNotEmpty(patMedOuthosp.getIdcardno()) && StringUtils.isNotEmpty(patMedOuthosp.getDeptcode())) {
//            ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
//            serviceSubtaskVO.setSfzh(patMedOuthosp.getIdcardno());
//            serviceSubtaskVO.setDeptcode(patMedOuthosp.getDeptcode());
//            serviceSubtaskVO.setSendstate(2L);
//            List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
//            if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
//                for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
//                    serviceSubtask.setSendstate(6L);
//                    serviceSubtask.setRemark("患者已经回来复诊");
//                    serviceSubtask.setUpdateTime(new Date());
//                    serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
//                }
//            }
//        }
        if (i > 0) {
            return true;
        }
        return false;
    }
    public void tableMaintenance() {
        // 1. 判断表数据量
        int count = patMedOuthospMapper.countPatMedOuthosp();
        if (count > 3000000) {
            // 2. 冷藏表并新建
            String timeSuffix = new SimpleDateFormat("yyyyMM").format(new Date());
            String oldName = "pat_med_outhosp";
            String newName = oldName + "_" + timeSuffix;
            // 冷藏
            patMedOuthospMapper.renameTable(oldName, newName);
            // 3. 计算所有表的最大id
            List<String> tableNames = patMedOuthospMapper.getAllOuthospTableNames();
            long maxId = 0;
            for (String tableName : tableNames) {
                Long tableMaxId = patMedOuthospMapper.getMaxIdFromTable(tableName);
                if (tableMaxId != null && tableMaxId > maxId) {
                    maxId = tableMaxId;
                }
            }
            // 4. 新建(此时只剩冷表,PatMedOuthosp没了,需要新建一个)
            patMedOuthospMapper.createPatMedOuthosp(newName, oldName);
            //5.设置新表自增主键
            patMedOuthospMapper.createPatMedOuthospAutoAdd(oldName);
            //6. 设置新表自增起始值
            patMedOuthospMapper.setAutoIncrement(oldName, maxId + 1);
            // 7. 更新/新建视图
            // 重新获取所有表名(包含刚新建的主表)
            List<String> allTables = patMedOuthospMapper.getAllOuthospTableNames();
            StringBuilder sb = new StringBuilder();
            sb.append("CREATE OR REPLACE VIEW v_pat_med_outhosp AS ");
            for (int i = 0; i < allTables.size(); i++) {
                sb.append("SELECT * FROM ").append(allTables.get(i));
                if (i < allTables.size() - 1) {
                    sb.append(" UNION ALL ");
                }
            }
            patMedOuthospMapper.createOrReplaceView(sb.toString());
        }
    }
    @Override
    public Boolean addDiseaseInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addDiseaseInfo的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addDiseaseInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> JiBing = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("JiBingMLXX") : null;
        ExternalDiseaseInfo externalDiseaseInfo = BeanUtil.mapToBean(JiBing, ExternalDiseaseInfo.class, true);
@@ -920,6 +1193,8 @@
        icd10.setIcdcode(externalDiseaseInfo.getIcD10());
        icd10.setDelFlag("0");
        icd10.setOrgid(FaSongJGID);
        //丽水无院区,默认值是 1
        icd10.setCampusid("1");
        //通过icdCode查询一下,是否存在
        List<Icd10> icd10s = icd10Mapper.selectIcd10List(icd10);
        icd10.setHisIcdid(externalDiseaseInfo.getJiBingID());
@@ -940,12 +1215,14 @@
    @Override
    public Boolean addWardAreaInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addWardAreaInfo的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addWardAreaInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> bqxx = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingQuXX") : null;
        ExternalWardArea externalWardArea = BeanUtil.mapToBean(bqxx, ExternalWardArea.class, true);
        SysDept sysDept = new SysDept();
        sysDept.setOrgid(externalWardArea.getZuZhiJGID());
        //丽水无院区,默认值是 1
        sysDept.setCampusid("1");
        sysDept.setHisDeptId(externalWardArea.getBingQuID());
        sysDept.setDeptName(externalWardArea.getBingQuMC());
@@ -963,24 +1240,24 @@
        if (StringUtils.isNotEmpty(externalWardArea.getShiJianDM()) && externalWardArea.getShiJianDM().equals("1")) {
            sysDept.setCreateTime(externalWardArea.getCreateTime());
            int i = sysDeptMapper.insertDept(sysDept);
            log.error("ServiceExternalServiceImpl---addWardAreaInfo是否新增成功:{}", i);
            log.info("ServiceExternalServiceImpl---addWardAreaInfo是否新增成功:{}", i);
        } else {
            int i = sysDeptMapper.updateDept(sysDept);
            log.error("ServiceExternalServiceImpl---addWardAreaInfo是否修改成功:{}", i);
            log.info("ServiceExternalServiceImpl---addWardAreaInfo是否修改成功:{}", i);
        }
        return true;
    }
    @Override
    public Boolean addMedicalTeam(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addMedicalTeam的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addMedicalTeam的新增的值为:{}", dataMap);
        return true;
    }
    @Override
    public Boolean addOperationInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addOperationInfo的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addOperationInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
@@ -1053,6 +1330,8 @@
            patMedOperation.setPatno(externalInHospPatientInfo.getBingRenID());
            patMedOperation.setPatname(externalInHospPatientInfo.getXingMing());
            patMedOperation.setOrgid(externalInHospPatientInfo.getZuZhiJGID());
            //丽水无院区,默认值是 1
            patMedOperation.setCampusid("1");
            patMedOperation.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
            patMedOperation.setInhospno(externalInHospPatientInfo.getBingAnHao());
            patMedOperation.setHospitalname(externalInHospPatientInfo.getZuZhiJGMC());
@@ -1080,7 +1359,7 @@
            patMedOperation.setCreateTime(new Date());
            patMedOperationMapper.insertPatMedOperation(patMedOperation);
        }
        log.error("-----patMedOperation的主键id为:{}", patMedOperation.getId());
        log.info("-----patMedOperation的主键id为:{}", patMedOperation.getId());
        if (ObjectUtils.isNotEmpty(ssxx)) {
            List<HashMap<String, Object>> ShouShuMXList = (List<HashMap<String, Object>>) ssxx.get("ShouShuMXList");
@@ -1116,6 +1395,8 @@
                patMedOperationItem.setOpposition(externalOperationDetail.getShouShuBW());
                patMedOperationItem.setDelFlag("0");
                patMedOperationItem.setOrgid(patMedOperation.getOrgid());
                //丽水无院区,默认值是 1
                patMedOperationItem.setCampusid("1");
                if (externalOperationDetail.getZhuShouSBZ().equals("1") && addMianTableFalg == true) {
                    patMedOperation.setOpcode(externalOperationDetail.getShouShuMCID());
                    patMedOperation.setOpdesc(externalOperationDetail.getShouShuMC());
@@ -1146,7 +1427,12 @@
        PatArchive patArchive = new PatArchive();
        //如果是刚出生的小孩子,是没有身份证的,怎么处理????????
        patArchive.setIdcardno(externalInHospPatientInfo.getZhengJianHM());
        //如果身份证为空的话,就用就诊卡号代替
        if (StringUtils.isEmpty(externalInHospPatientInfo.getZhengJianHM()))
            patArchive.setIdcardno(externalInHospPatientInfo.getJiuZhenKH());
        patArchive.setOrgid(externalInHospPatientInfo.getZuZhiJGID());
        //丽水无院区,默认值是 1
        patArchive.setCampusid("1");
        List<PatArchive> patArchives = null;
        if (ObjectUtils.isNotEmpty(patArchive.getIdcardno()))
            patArchives = patArchiveMapper.selectPatArchiveList(patArchive);
@@ -1209,6 +1495,8 @@
                patArchivecontact.setPatid(patArchive.getId());
                patArchivecontact.setContactname(external.getLianXiRXM());
                patArchivecontact.setOrgid(patArchive.getOrgid());
                //丽水无院区,默认值是 1
                patArchivecontact.setCampusid("1");
                List<PatArchivecontact> patArchivecontacts = patArchivecontactMapper.selectPatArchivecontactList(patArchivecontact);
                patArchivecontact.setContactway(external.getLianXiRDH());
                patArchivecontact.setRelation(external.getGuanXiMC());
@@ -1244,6 +1532,8 @@
            //这里是床位名称还是床位编号????
            patMedInhosp.setBedNo(externalInHospPatientInfo.getDangQianCWMC());
            patMedInhosp.setOrgid(externalInHospPatientInfo.getZuZhiJGID());
            //丽水无院区,默认值是 1
            patMedInhosp.setCampusid("1");
            patMedInhosp.setHospitaldistrictid(externalInHospPatientInfo.getDangQianBQID());
            patMedInhosp.setGuid(externalInHospPatientInfo.getZuZhiJGID());
            patMedInhosp.setInhospstate("0");
@@ -1258,6 +1548,8 @@
            patMedInhosp.setDrcode(externalInHospPatientInfo.getZhuZhiYSID());
            patMedInhosp.setNurseId(externalInHospPatientInfo.getZeRenHSID());
            patMedInhosp.setNurseName(externalInHospPatientInfo.getZeRenHSXM());
            patMedInhosp.setManagementDoctor(externalInHospPatientInfo.getJingGuanYSXM());
            patMedInhosp.setManagementDoctorCode(externalInHospPatientInfo.getJingGuanYSID());
        }
        if (ObjectUtils.isNotEmpty(externalInHospPatientDiagnoseInfo)) {
//            patMedInhosp.setIcd10code(StringUtils.isNotEmpty(patMedInhosp.getIcd10code()) ? patMedInhosp.getIcd10code() + "," + externalInHospPatientDiagnoseInfo.getZhenDuanID() : externalInHospPatientDiagnoseInfo.getZhenDuanID());
@@ -1292,7 +1584,7 @@
    //新增随访任务同步
    @Override
    public Boolean addTaskInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addTaskInfo的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addTaskInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> bqxx = (Map<String, Object>) yeWuXX.get("BingQuXX");
@@ -1314,7 +1606,7 @@
    //检查申请服务
    @Override
    public Boolean addInspectService(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addInspectService的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addInspectService的新增的值为:{}", dataMap);
        Map xiaoXiTou = (Map) dataMap.get("XiaoXiTou");
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
@@ -1352,12 +1644,14 @@
        PatArchive patArchive = addPatArchive(externalInHospPatientInfo, externalInHospPatientAddrInfo, externalInHospPatientLiaisonInfo);
        PatMedInspection patMedInspection = new PatMedInspection();
        if(xiaoXiTou.get("XiaoXiLX").equals("JC_SQ_ShenQing") || xiaoXiTou.get("XiaoXiLX").equals("JC_SQ_XiuGai")){
        if (xiaoXiTou.get("XiaoXiLX").equals("JC_SQ_ShenQing") || xiaoXiTou.get("XiaoXiLX").equals("JC_SQ_XiuGai")) {
            patMedInspection.setProjecttype(1);
        }else if(xiaoXiTou.get("XiaoXiLX").equals("JY_SQ_ShenQing") || xiaoXiTou.get("XiaoXiLX").equals("JY_SQ_XiuGai")){
        } else if (xiaoXiTou.get("XiaoXiLX").equals("JY_SQ_ShenQing") || xiaoXiTou.get("XiaoXiLX").equals("JY_SQ_XiuGai")) {
            patMedInspection.setProjecttype(0);
        }
        patMedInspection.setOrgid(externalInHospPatientInfo.getZuZhiJGID());
        //丽水无院区,默认值是 1
        patMedInspection.setCampusid("1");
        patMedInspection.setInhospno(externalInHospPatientInfo.getBingAnHao());
        patMedInspection.setPatidHis(externalInHospPatientInfo.getBingRenID());
        patMedInspection.setPatname(externalInHospPatientInfo.getXingMing());
@@ -1368,7 +1662,7 @@
            patMedInspection.setTelcode(ObjectUtils.isNotEmpty(BingRenXX.get("LianXiDH")) ? BingRenXX.get("LianXiDH").toString() : null);
        }
        List<PatMedInspection> patMedInspections = patMedInspectionMapper.selectPatMedInspectionList(patMedInspection);
        if(ObjectUtils.isNotEmpty(JianChaSQ)){
        if (ObjectUtils.isNotEmpty(JianChaSQ)) {
            patMedInspection.setAdviceId(Long.valueOf(ObjectUtils.isNotEmpty(JianChaSQ.get("YiZhuID")) ? JianChaSQ.get("YiZhuID").toString() : null));
            patMedInspection.setAppliyid(ObjectUtils.isNotEmpty(JianChaSQ.get("ShenQingDID")) ? JianChaSQ.get("ShenQingDID").toString() : null);
            patMedInspection.setPriority(ObjectUtils.isNotEmpty(JianChaSQ.get("YouXianJi")) ? JianChaSQ.get("YouXianJi").toString() : null);
@@ -1437,13 +1731,15 @@
            patMedInspection.setDiagname(externalInspectionJC.get(0).getZhenDuanMC());
        }
        if (CollectionUtils.isNotEmpty(patMedInspections)){
        if (CollectionUtils.isNotEmpty(patMedInspections)) {
            patMedInspection.setUpdateDate(new Date());
            patMedInspection.setOrgid(ObjectUtils.isNotEmpty(xiaoXiTou) && ObjectUtils.isNotEmpty(xiaoXiTou.get("FaSongJGID")) ? xiaoXiTou.get("FaSongJGID").toString() : null);
            //丽水无院区,默认值是 1
            patMedInspection.setCampusid("1");
            //   更新操作
            int i = patMedInspectionMapper.updatePatMedInspection(patMedInspection);
            if (i != 1) return false;
        }else {
        } else {
            patMedInspection.setDelFlag("0");
            patMedInspection.setCreateTime(new Date());
            int i = patMedInspectionMapper.insertPatMedInspection(patMedInspection);
@@ -1456,7 +1752,7 @@
    //检查详情添加
    @Override
    public Boolean addInspectBGService(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addInspectBGService的新增的值为:{}", dataMap);
        log.info("ServiceExternalServiceImpl---addInspectBGService的新增的值为:{}", dataMap);
        Map xiaoXiTou = (Map) dataMap.get("XiaoXiTou");
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
@@ -1465,23 +1761,27 @@
        PatMedInspection patMedInspection = new PatMedInspection();
        PatMedInspectionItem patMedInspectionItem = new PatMedInspectionItem();
        patMedInspection.setOrgid(BingRenXX.get("ZuZhiJGID").toString());
        //丽水无院区,默认值是 1
        patMedInspection.setCampusid("1");
        patMedInspection.setInhospno(BingRenXX.get("BingAnHao").toString());
        patMedInspection.setPatidHis(BingRenXX.get("BingRenID").toString());
        patMedInspection.setPatname(BingRenXX.get("XingMing").toString());
        patMedInspection.setAppliyid(JianChaBG.get("ShenQingDID").toString());
        //查找患者检查检验信息,如果无,进行新加
        List<PatMedInspection> patMedInspections = patMedInspectionMapper.selectPatMedInspectionList(patMedInspection);
        if(CollectionUtils.isNotEmpty(patMedInspections)){
        if (CollectionUtils.isNotEmpty(patMedInspections)) {
            patMedInspectionItem.setInspectionid(patMedInspections.get(0).getId().intValue());
        }else{
        } else {
            addInspectService(dataMap);
            List<PatMedInspection> patMedInspections2 = patMedInspectionMapper.selectPatMedInspectionList(patMedInspection);
            patMedInspectionItem.setInspectionid(patMedInspections2.get(0).getId().intValue());
        }
        //检查检验报告数据处理
        patMedInspectionItem.setOrgid(BingRenXX.get("ZuZhiJGID").toString());
        //丽水无院区,默认值是 1
        patMedInspectionItem.setCampusid("1");
        List<PatMedInspectionItem> patMedInspectionItems = patMedInspectionItemMapper.selectPatMedInspectionItemList(patMedInspectionItem);
        if (ObjectUtils.isNotEmpty(JianChaBG)){
        if (ObjectUtils.isNotEmpty(JianChaBG)) {
            patMedInspectionItem.setInspectionName(JianChaBG.get("JianChaHao").toString());
            patMedInspectionItem.setReportid(JianChaBG.get("JianChaHao").toString());
            patMedInspectionItem.setStatuscode(JianChaBG.get("DangQianZTDM").toString());
@@ -1507,11 +1807,11 @@
                }
            }
        }
        if(ObjectUtils.isNotEmpty(patMedInspectionItems)){
        if (ObjectUtils.isNotEmpty(patMedInspectionItems)) {
            patMedInspectionItem.setUpdateTime(new Date());
            int i = patMedInspectionItemMapper.updatePatMedInspectionItem(patMedInspectionItem);
            if (i != 1) return false;
        }else {
        } else {
            patMedInspectionItem.setDelFlag("0");
            patMedInspectionItem.setCreateTime(new Date());
            int i = patMedInspectionItemMapper.insertPatMedInspectionItem(patMedInspectionItem);
@@ -1524,116 +1824,119 @@
    private Boolean getType(String type, Map dataMap) {
        switch (type) {
            case "BR_DA_DangAnJL":
                log.error("患者档案建立入参类型为:{}", type);
                log.info("患者档案建立入参类型为:{}", type);
                return true;
            case "BR_DA_DangAnXG":
                log.error("患者档案修改入参类型为:{}", type);
                log.info("患者档案修改入参类型为:{}", type);
                return true;
            case "JZ_MZ_ZhenDuanXXLR":
                log.error("患者诊断信息门诊录入入参类型为:{}", type);
                log.info("患者诊断信息门诊录入入参类型为:{}", type);
                return true;
            case "JZ_ZY_ZhenDuanXXLR":
                log.error("患者诊断信息住院录入入参类型为:{}", type);
                log.info("患者诊断信息住院录入入参类型为:{}", type);
                return true;
            case "YZ_MZ_YiZhuSQ":
                log.error("门诊医嘱申请入参类型为:{}", type);
                log.info("门诊医嘱申请入参类型为:{}", type);
                return true;
            case "YZ_ZY_YiZhuZX":
                log.error("住院医嘱执行入参类型为:{}", type);
                log.info("住院医嘱执行入参类型为:{}", type);
                return true;
            case "YZ_MZ_YiZhuXG":
                log.error("门诊医嘱修改入参类型为:{}", type);
                log.info("门诊医嘱修改入参类型为:{}", type);
                return true;
            case "YZ_MZ_YiZhuCX":
                log.error("门诊医嘱撤销入参类型为:{}", type);
                log.info("门诊医嘱撤销入参类型为:{}", type);
                return true;
            case "YZ_MZ_YiZhuCS":
                log.error("门诊医嘱删除入参类型为:{}", type);
                log.info("门诊医嘱删除入参类型为:{}", type);
                return true;
            case "JC_SQ_ShenQing":
                log.error("检查申请单入参类型为:{}", type);
                log.info("检查申请单入参类型为:{}", type);
                return addInspectService(dataMap);
            case "JC_SQ_XiuGai":
                log.error("检查申请信息更新入参类型为:{}", type);
                log.info("检查申请信息更新入参类型为:{}", type);
                return addInspectService(dataMap);
            case "JC_SQ_CheXiao":
                log.error("检查撤销入参类型为:{}", type);
                log.info("检查撤销入参类型为:{}", type);
                return true;
            case "JC_BG_BaoGao":
                log.error("检查报告入参类型为:{}", type);
                log.info("检查报告入参类型为:{}", type);
                return addInspectBGService(dataMap);
            case "JY_SQ_ShenQing":
                log.error("检验申请入参类型为:{}", type);
                log.info("检验申请入参类型为:{}", type);
                return addInspectService(dataMap);
            case "JY_SQ_CheXiao":
                log.error("检验撤销入参类型为:{}", type);
                log.info("检验撤销入参类型为:{}", type);
                return true;
            case "JY_SQ_XiuGai":
                log.error("检验修改入参类型为辅:{}", type);
                log.info("检验修改入参类型为辅:{}", type);
                return addInspectService(dataMap);
            case "JY_SQ_BiaoBenCJ":
                log.error("检验标本采集入参类型为:{}", type);
                log.info("检验标本采集入参类型为:{}", type);
                return true;
            case "JY_SQ_QuXiaoBBCJ":
                log.error("取消检验标本采集入参类型为:{}", type);
                log.info("取消检验标本采集入参类型为:{}", type);
                return true;
            case "SM_SQ_ShenQing":
                log.error("手术申请入参类型为:{}", type);
                log.info("手术申请入参类型为:{}", type);
                addOperationInfo(dataMap);
                return true;
            case "TJ_YW_BaoGaoXX":
                log.error("体检报告入参类型为:{}", type);
                log.info("体检报告入参类型为:{}", type);
                return true;
            case "TJ_YW_QuXiaoBG":
                log.error("取消体检报告入参类型为:{}", type);
                log.info("取消体检报告入参类型为:{}", type);
                return true;
            case "JG_ZZ_JiGou":
                log.error("组织机构入参类型为:{}", type);
                log.info("组织机构入参类型为:{}", type);
                return addOrganInfo(dataMap);
            case "JG_ZZ_KeShi":
                log.error("科室入参类型为:{}", type);
                log.info("科室入参类型为:{}", type);
                return addDeptInfo(dataMap);
            case "JG_YH_JiBenXX":
                log.error("用户信息入参类型为:{}", type);
                log.info("用户信息入参类型为:{}", type);
                return addUserInfo(dataMap);
            case "JG_YH_KeShiYH":
                log.info("科室用户信息入参类型为:{}", type);
                return addUserDeptInfo(dataMap);
            case "fu_task":
                log.error("fu_task服务入参类型为:{}", type);
                log.info("fu_task服务入参类型为:{}", type);
                return addTaskInfo(dataMap);
            case "GY_ZD_JiBingML":
                log.error("疾病入参类型为:{}", type);
                log.info("疾病入参类型为:{}", type);
                return addDiseaseInfo(dataMap);
            case "YP_ZD_YaoPinCDJG":
                log.error("药品产地价格入参类型为:{}", type);
                log.info("药品产地价格入参类型为:{}", type);
                return true;
            case "JZ_MZ_WanChengJZ":
                log.error("完成接诊入参类型为:{}", type);
                log.info("(门急诊)完成接诊入参类型为:{}", type);
                return addFinshJZInfo(dataMap);
            case "JZ_ZY_RuYuanDJ":
                log.error("入院登记入参类型为:{}", type);
                log.info("入院登记入参类型为:{}", type);
                return addInHospInfo(dataMap);
            case "JZ_ZY_QuXiaoRY":
                log.error("取消入院登记入参类型为:{}", type);
                log.info("取消入院登记入参类型为:{}", type);
                return cancelInHospInfo(dataMap);
            case "JZ_ZY_ChuYuan":
                log.error("患者出院入参类型为:{}", type);
                log.info("患者出院入参类型为:{}", type);
                return addOutHospInfo(dataMap);
            case "BL_JL_ChuYuanJL":
                log.error("患者出院记录入参类型为:{}", type);
                log.info("患者出院记录入参类型为:{}", type);
                return addOutHospJLInfo(dataMap);
            case "JZ_ZY_QuXiaoCY":
                log.error("取消出院入参类型为:{}", type);
                log.info("取消出院入参类型为:{}", type);
                return cancelOutHospInfo(dataMap);
            case "JZ_ZY_YuChuYuan":
                log.error("患者预出院入参类型为:{}", type);
                log.info("患者预出院入参类型为:{}", type);
                return addPreOutHospInfo(dataMap);
            case "JG_ZZ_BingQu":
                log.error("病区信息入参类型为:{}", type);
                log.info("病区信息入参类型为:{}", type);
                return addWardAreaInfo(dataMap);
            case "JG_ZZ_YiLiaoZYS":
                log.error("医疗组医生为:{}", type);
                log.info("医疗组医生为:{}", type);
                return addMedicalTeam(dataMap);
            case "JZ_ZY_RuKe":
                log.error("入科的数据为:{}", type);
                log.info("入科的数据为:{}", type);
                return addInDeptInfo(dataMap);
        }
        return true;