From ae8dfb86654fd98592e57bbfe820b7c2275ce8a5 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期四, 25 九月 2025 19:00:47 +0800 Subject: [PATCH] usrer_name不进行模糊查询 --- smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 155 insertions(+), 12 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 73f905f..64cc977 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java @@ -24,10 +24,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; /** @@ -70,6 +67,9 @@ @Value("${defaultPwd}") private String defaultPwd; + + @Value("${noLongTask}") + private List<String> noLongTask; public Boolean generalInterface(Map dataMap) { Map XiaoXiTou = (Map) dataMap.get("XiaoXiTou"); @@ -117,10 +117,10 @@ } if (StringUtils.isNotEmpty(externalDept.getShiJianDM()) && externalDept.getShiJianDM().equals("1")) { int i = sysDeptMapper.insertDept(sysDept); - log.info("ServiceExternalServiceImpl---addDeptInfo鏄惁鏂板鎴愬姛锛歿}", i); + log.info("ServiceExternalServiceImpl---addDeptInfo01鏄惁鏂板鎴愬姛锛歿}", i); } else { int i = sysDeptMapper.updateDept(sysDept); - log.info("ServiceExternalServiceImpl---addDeptInfo鏄惁淇敼鎴愬姛锛歿}", i); + log.info("ServiceExternalServiceImpl---addDeptInfo02鏄惁淇敼鎴愬姛锛歿}", i); } return true; } @@ -138,8 +138,12 @@ sysUser.setUserName(externalUserInfo.getYongHuDLM()); sysUser.setOrgid(externalUserInfo.getZuZhiJGID()); //鏍规嵁userName鍒ゆ柇涓�涓嬶紝鏄笉鏄箣鍓嶆湁鏂板 - SysUser sysUser1 = sysUserMapper.selectUserByUserName(externalUserInfo.getYongHuDLM()); - + 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(""); @@ -166,12 +170,33 @@ int i = sysUserMapper.insertUser(sysUser); log.info("ServiceExternalServiceImpl---addDeptInfo鏄惁鏂板鎴愬姛锛歿}", i); } else { + sysUser.setUserId(sysUser1.getUserId()); int i = sysUserMapper.updateUser(sysUser); - log.info("ServiceExternalServiceImpl---addDeptInfo鏄惁淇敼鎴愬姛锛歿}", i); + log.info("ServiceExternalServiceImpl---addDeptInfo鏄惁淇敼鎴愬姛03锛歿}", i); } return true; } + + private SysUser getUser(List<SysUser> sysUserList) { + SysUser sysUser = null; + if (CollectionUtils.isNotEmpty(sysUserList) && sysUserList.size() > 1) { + // 鎸塩reate_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) { @@ -283,6 +308,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); @@ -396,6 +423,7 @@ //鏂板鎮h�呭熀鏈俊鎭柊澧炴垨淇敼 PatArchive patArchive = addPatArchive(externalInHospPatientInfo, externalInHospPatientAddrInfo, externalInHospPatientLiaisonInfo); + PatMedInhosp patMedInhosp = new PatMedInhosp(); patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao()); patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID()); @@ -467,6 +495,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 { @@ -484,6 +516,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; } @@ -570,7 +607,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(); } @@ -600,6 +638,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 { @@ -617,6 +659,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; } @@ -826,6 +872,9 @@ @Override public Boolean addFinshJZInfo(Map 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; @@ -867,6 +916,19 @@ 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.setTelcode(patArchive.getTelcode()); + patMedOuthosp1.setIdcardno(patArchive.getIdcardno()); + } + } patMedOuthosp.setPatid(patArchive.getId()); patMedOuthosp.setPatno(externalInHospPatientInfo.getBingAnHao()); @@ -878,6 +940,10 @@ patMedOuthosp.setAdmitdate(externalJZInfo.getJiuZhenRQ()); patMedOuthosp.setOrgid(FaSongJGID); patMedOuthosp.setHospitalname(FaSongJGMC); + patMedOuthosp.setIdcardno(patArchive.getIdcardno()); + + //杩欎釜闇�瑕佺瓑HIS閭h竟鍛婅瘔鍙栧摢涓瓧娈碉紝鐜板湪杩樻槸涓嶅鐨� + patMedOuthosp.setFudate(externalJZInfo.getSfrq()); for (ExternalDiagnosisInfo externalDiagnosisInfo : externalDiagnosisInfoList) { if (externalDiagnosisInfo.getZhenDuanLBMC().equals("涓昏瘖鏂�")) { @@ -885,6 +951,7 @@ patMedOuthosp.setDrcode(externalDiagnosisInfo.getZhenDuanYSID()); patMedOuthosp.setDrname(externalDiagnosisInfo.getZhenDuanYSXM()); patMedOuthosp.setIcd10code(externalDiagnosisInfo.getIcd10()); + patMedOuthosp.setFuflag("0"); } } for (ExternalWZInfo externalWZInfo : ExternalWZInfoList) { @@ -899,17 +966,88 @@ 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("鎮h�呭凡缁忓洖鏉ュ璇�"); +// 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. 璁$畻鎵�鏈夎〃鐨勬渶澶d + 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. 鏂板缓(姝ゆ椂鍙墿鍐疯〃锛孭atMedOuthosp娌′簡锛岄渶瑕佹柊寤轰竴涓�) + 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 @@ -1150,6 +1288,9 @@ PatArchive patArchive = new PatArchive(); //濡傛灉鏄垰鍑虹敓鐨勫皬瀛╁瓙锛屾槸娌℃湁韬唤璇佺殑锛屾�庝箞澶勭悊锛燂紵锛燂紵锛燂紵锛燂紵 patArchive.setIdcardno(externalInHospPatientInfo.getZhengJianHM()); + //濡傛灉韬唤璇佷负绌虹殑璇濓紝灏辩敤灏辫瘖鍗″彿浠f浛 + if (StringUtils.isEmpty(externalInHospPatientInfo.getZhengJianHM())) + patArchive.setIdcardno(externalInHospPatientInfo.getJiuZhenKH()); patArchive.setOrgid(externalInHospPatientInfo.getZuZhiJGID()); List<PatArchive> patArchives = null; if (ObjectUtils.isNotEmpty(patArchive.getIdcardno())) @@ -1262,6 +1403,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()); @@ -1610,7 +1753,7 @@ log.info("鑽搧浜у湴浠锋牸鍏ュ弬绫诲瀷涓猴細{}", type); return true; case "JZ_MZ_WanChengJZ": - log.info("瀹屾垚鎺ヨ瘖鍏ュ弬绫诲瀷涓猴細{}", type); + log.info("锛堥棬鎬ヨ瘖锛夊畬鎴愭帴璇婂叆鍙傜被鍨嬩负锛歿}", type); return addFinshJZInfo(dataMap); case "JZ_ZY_RuYuanDJ": log.info("鍏ラ櫌鐧昏鍏ュ弬绫诲瀷涓猴細{}", type); -- Gitblit v1.9.3