From 0afac42fb2e9d6e5291304dd0044ce3042b45d2b Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期六, 10 十月 2026 15:09:14 +0800
Subject: [PATCH] 短信模块提交
---
smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java | 51 ++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 48 insertions(+), 3 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
index 3f00820..9b0fcea 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
@@ -197,7 +197,48 @@
patMedOuthosp.setUpdateTime(DateUtils.getNowDate());
patMedOuthosp.setGuid(UUID.randomUUID().toString());
log.info("[insert] 璺敱鍒板垎琛�: {}", targetTable);
- return patMedOuthospMapper.insertIntoTable(targetTable, patMedOuthosp);
+ try {
+ return patMedOuthospMapper.insertIntoTable(targetTable, patMedOuthosp);
+ } catch (org.springframework.dao.DuplicateKeyException e) {
+ // 鍔犱簡 serialnum 鍞竴绱㈠紩鍚庯紝鏋佺骞跺彂鎴栭噸澶嶉噰闆嗕細琚暟鎹簱鐩存帴鎷︿笅锛�
+ // 杩欏睘浜�"璁板綍宸插瓨鍦�"锛屾寜姝e父璺宠繃澶勭悊锛堣繑鍥�0锛夛紝涓嶈褰撴垚鍏ュ簱澶辫触鍐欒繘閿欒琛�
+ log.info("[insert] serialnum={} 宸插瓨鍦ㄤ簬琛� {}锛堝敮涓�绱㈠紩鎷︽埅锛夛紝璺宠繃鎻掑叆", patMedOuthosp.getSerialnum(), targetTable);
+ return 0;
+ }
+ }
+
+ /**
+ * 鎵归噺鏌ヨ宸插叆搴撶殑 serialnum锛氭寜灏辫瘖鏃ユ湡瀹氫綅鍒嗚〃锛屼竴娆� IN 鏌ヨ鏌ュ嚭鏁撮〉宸插瓨鍦ㄧ殑璁板綍
+ * <p>
+ * 鍘熸潵姣忔潯璁板綍閮借 countBySerialnum 涓�娆★紝涓�椤� 500 鏉″氨鏄� 500 娆� SQL锛�
+ * 闂ㄦ�ヨ瘖鎸夊ぉ鍏ㄩ噺閲囬泦鏃舵瘡澶╄杩欎箞璺� 48 杞紝杩欓噷鍚堝苟鎴� 1 娆℃煡璇�
+ */
+ @Override
+ public Set<String> selectExistingSerialnums(String admitDateStr, Collection<String> serialnums) {
+ Set<String> existing = new HashSet<>();
+ if (CollectionUtils.isEmpty(serialnums)) {
+ return existing;
+ }
+ Date admitDate = null;
+ if (StringUtils.isNotBlank(admitDateStr)) {
+ try {
+ admitDate = new java.text.SimpleDateFormat("yyyy-MM-dd").parse(admitDateStr);
+ } catch (java.text.ParseException e) {
+ log.warn("[selectExistingSerialnums] 灏辫瘖鏃ユ湡瑙f瀽澶辫触锛歿}锛屾寜涓昏〃鏌ヨ", admitDateStr);
+ }
+ }
+ // 涓庢彃鍏ユ椂鐨勮矾鐢辫鍒欎繚鎸佷竴鑷达紝淇濊瘉鏌ラ噸鏌ョ殑灏辨槸瑕佸啓鍏ョ殑閭e紶琛�
+ String targetTable = admitDate == null ? null : resolveTargetTable(admitDate);
+ if (targetTable == null) {
+ targetTable = "pat_med_outhosp";
+ }
+ List<String> existed = patMedOuthospMapper.selectExistingSerialnums(targetTable, serialnums);
+ if (!CollectionUtils.isEmpty(existed)) {
+ existing.addAll(existed);
+ }
+ log.info("[selectExistingSerialnums] 鏃ユ湡={}锛屽垎琛�={}锛屽緟鏌}鏉★紝宸插瓨鍦▄}鏉�",
+ admitDateStr, targetTable, serialnums.size(), existing.size());
+ return existing;
}
/**
@@ -482,6 +523,8 @@
public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOuthosp patMedOuthosp, PatArchive patArchive) {
ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
serviceSubtask.setTaskid(serviceTask.getTaskid());
+ serviceSubtask.setOrgid(serviceTask.getOrgid());
+ serviceSubtask.setCampusid(serviceTask.getCampusid());
if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid()))
serviceSubtask.setLibtemplateid(Long.valueOf(serviceTask.getLibtemplateid()));
serviceSubtask.setDrcode(patMedOuthosp.getDrcode());
@@ -546,7 +589,8 @@
Integer num = 0;
//鏅畞 瀛樺湪鐩稿悓璇婃柇鐨勯棬璇婅褰曞垯鏂板鍐嶆闅忚,鍚﹀垯鏂板闅忚
- if(patMedOuthosp.getOrgid().equals("47255004333112711A1001")){
+ if(ObjectUtils.isNotEmpty(patMedOuthosp.getOrgid()) &&
+ patMedOuthosp.getOrgid().equals("47255004333112711A1001")){
PatMedOuthosp patMedOuthospVo = new PatMedOuthosp();
List<PatMedOuthosp> patMedOuthosps = new ArrayList<>();
patMedOuthospVo.setOrgid(patMedOuthosp.getOrgid());
@@ -653,7 +697,8 @@
serviceSubtaskEntity0.setSendstates(new ArrayList<>(Arrays.asList(1L, 2L, 3L, 7L)));
serviceSubtaskEntity0.setPatid(patid);
//鏅畞鏍规嵁璇婃柇鍐嶆闅忚
- if(patMedOuthosp.getOrgid().equals("47255004333112711A1001") && !CollectionUtils.isEmpty(inhospids)){
+ if(ObjectUtils.isNotEmpty(patMedOuthosp.getOrgid()) &&
+ patMedOuthosp.getOrgid().equals("47255004333112711A1001") && !CollectionUtils.isEmpty(inhospids)){
serviceSubtaskEntity0.setInhospids(inhospids);
}else {
serviceSubtaskEntity0.setDeptcode(deptcode);
--
Gitblit v1.9.3