diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IBaseService.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IBaseService.java index 3b56da9..4e1fa62 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IBaseService.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/IBaseService.java @@ -30,4 +30,6 @@ public interface IBaseService { public String getSmsPrefix(SmsConfigModel config,String doctorId,int objType); public Set getYuYuePatient(Integer sendTimeType,String tempHid); + + public boolean isSendTemplate(Integer templateType,Integer serviceType); } diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/BaseServiceImpl.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/BaseServiceImpl.java index 925ad05..2364d3a 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/BaseServiceImpl.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/BaseServiceImpl.java @@ -169,16 +169,36 @@ public class BaseServiceImpl implements IBaseService { } } } -// List fuzs = antenatalExaminationService.queryYuyueAntenatalExamination(yuYueDate, tempHid); -// -// for (AntenatalExaminationModel f : fuzs) -// { -// idset.add(f.getId()); //这里的id就是parentid -// } return idset; } /** + * 判断模板类型是否发送,根据服务类型 + * @param templateType 模板类型 0 推送 1 短信 + * @param serviceType 1 推送服务, 2 推送和短信服务 3短信服务, + * @return true 发送,false 不发送 + */ + @Override + public boolean isSendTemplate(Integer templateType, Integer serviceType) { + //推送类型模板 + if (templateType == null || templateType == 0) + { + //发送推送类模板建档 + if (serviceType == 3) + { + return false; + } + } + //发送短信类模板建档 + else if(templateType == 1 && serviceType == 1) + { + return false; + } + + return true; + } + + /** * 判断医院是否运行 * @return */ diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/MsgGenerateServiceImpl.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/MsgGenerateServiceImpl.java index f01494d..15656de 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/MsgGenerateServiceImpl.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/service/impl/MsgGenerateServiceImpl.java @@ -30,6 +30,7 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { private static final Logger logger = LoggerFactory.getLogger(MsgGenerateServiceImpl.class); + private static final int DEFAULT_BATCH_SIZE = 20; private static ExecutorService pool = Executors.newFixedThreadPool(20); @@ -64,10 +65,9 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { logger.info("The generatePatAmsMsg configs hospital size is {}",configModels.size()); if (CollectionUtils.isNotEmpty(configModels)) { - int batchSize = 10; int end = 0; - for (int i = 0; i < configModels.size(); i += batchSize) { - end = (end + batchSize); + for (int i = 0; i < configModels.size(); i += DEFAULT_BATCH_SIZE) { + end = (end + DEFAULT_BATCH_SIZE); if (end > configModels.size()) { end = configModels.size(); } @@ -90,10 +90,9 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { logger.info("The generateBabyAmsMsg configs hospital size is {}",configModels.size()); if (CollectionUtils.isNotEmpty(configModels)) { - int batchSize = 10; int end = 0; - for (int i = 0; i < configModels.size(); i += batchSize) { - end = (end + batchSize); + for (int i = 0; i < configModels.size(); i += DEFAULT_BATCH_SIZE) { + end = (end + DEFAULT_BATCH_SIZE); if (end > configModels.size()) { end = configModels.size(); } @@ -116,10 +115,9 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { logger.info("The generateChanAmsMsg configs hospital size is {}",configModels.size()); if (CollectionUtils.isNotEmpty(configModels)) { - int batchSize = 10; int end = 0; - for (int i = 0; i < configModels.size(); i += batchSize) { - end = (end + batchSize); + for (int i = 0; i < configModels.size(); i += DEFAULT_BATCH_SIZE) { + end = (end + DEFAULT_BATCH_SIZE); if (end > configModels.size()) { end = configModels.size(); } @@ -142,10 +140,9 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { logger.info("The generateChanAmsMsg configs hospital size is {}",configModels.size()); if (CollectionUtils.isNotEmpty(configModels)) { - int batchSize = 10; int end = 0; - for (int i = 0; i < configModels.size(); i += batchSize) { - end = (end + batchSize); + for (int i = 0; i < configModels.size(); i += DEFAULT_BATCH_SIZE) { + end = (end + DEFAULT_BATCH_SIZE); if (end > configModels.size()) { end = configModels.size(); } diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/TempleteMsgGenerateWorker.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/TempleteMsgGenerateWorker.java index c7814b4..d814d1f 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/TempleteMsgGenerateWorker.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/TempleteMsgGenerateWorker.java @@ -83,7 +83,7 @@ public class TempleteMsgGenerateWorker implements Runnable { tempQuery.setHospitalId(hospitalId); List templates = smsTemplateService.querySmsTemplates(tempQuery); - if (!CollectionUtils.isNotEmpty(templates)) + if (CollectionUtils.isEmpty(templates)) { continue; } @@ -97,10 +97,15 @@ public class TempleteMsgGenerateWorker implements Runnable { end = templates.size(); } final List items = templates.subList(i, end); - pool.submit(new Runnable() { + pool.execute(new Runnable() { @Override public void run() { + if (CollectionUtils.isEmpty(items)) + { + return; + } + //循环每一个模板,根据模板条件查询到用户 发送短信 for (SmsTemplateModel template : items) { @@ -124,6 +129,15 @@ public class TempleteMsgGenerateWorker implements Runnable { continue; } + //判断模板是否发送 + boolean isSendTemplate = baseService.isSendTemplate(template.getTemplateType(),service); + if (!isSendTemplate) + { + continue; + } + + service = (template.getTemplateType() == null || template.getTemplateType() == 0) ? 1 : 3; + //孕妇 if (serviceObj == ServiceObjEnums.YUNOBJ.getId()) {