From f4a262dcae788b7d1e94386d8f3861e53e2a9f3f Mon Sep 17 00:00:00 2001 From: liquanyu Date: Fri, 25 Aug 2017 15:20:27 +0800 Subject: [PATCH] update code --- .../msg/controller/MsgGenerateController.java | 124 ++++++++++----------- .../platform/msg/remote/AmsMessageService.java | 2 +- .../platform/msg/remote/SaveMessageService.java | 9 +- .../msg/service/impl/MsgGenerateServiceImpl.java | 48 ++++++-- .../com/lyms/platform/msg/utils/HelperUtils.java | 24 ++-- .../msg/worker/BabyAmsMsgGenerateWorker.java | 9 +- .../msg/worker/ChanAmsMsgGenerateWorker.java | 5 + .../msg/worker/TempleteMsgGenerateWorker.java | 81 ++++++++++---- .../msg/worker/YunAmsMsgGenerateWorker.java | 7 +- 9 files changed, 199 insertions(+), 110 deletions(-) diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/controller/MsgGenerateController.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/controller/MsgGenerateController.java index feeccee..254b1e7 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/controller/MsgGenerateController.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/controller/MsgGenerateController.java @@ -22,67 +22,67 @@ public class MsgGenerateController extends BaseController { // @Autowired private IMsgGenerateService msgGenerateService; -// -// /** -// * 生成孕妇ams消息 -// * @param hospitalId -// * @return -// */ -// @RequestMapping(method = RequestMethod.GET, value = "/generatePatAmsMsg") -// @ResponseBody -// public String generatePatAmsMsg(@RequestParam(required = false) String hospitalId) -// { -// -// logger.info("The request hospital id is {} ", hospitalId); -// msgGenerateService.generatePatAmsMsg(hospitalId); -// return ""; -// } -// -// -// /** -// * 生成儿童ams消息 -// * @param hospitalId -// * @return -// */ -// @RequestMapping(method = RequestMethod.GET, value = "/generateBabyAmsMsg") -// @ResponseBody -// public String generateBabyAmsMsg(@RequestParam(required = false) String hospitalId) -// { -// -// logger.info("The request hospital id is {} ", hospitalId); -// msgGenerateService.generateBabyAmsMsg(hospitalId); -// return ""; -// } -// -// -// /** -// * 生成产妇ams消息 -// * @param hospitalId -// * @return -// */ -// @RequestMapping(method = RequestMethod.GET, value = "/generateChanAmsMsg") -// @ResponseBody -// public String generateChanAmsMsg(@RequestParam(required = false) String hospitalId) -// { -// -// logger.info("The request hospital id is {} ", hospitalId); -// msgGenerateService.generateChanAmsMsg(hospitalId); -// return ""; -// } -// -// /** -// * 生成模板推送消息 -// * @param hospitalId -// * @return -// */ -// @RequestMapping(method = RequestMethod.GET, value = "/generateTemplateMsg") -// @ResponseBody -// public String generateTemplateMsg(@RequestParam(required = false) String hospitalId) -// { -// -// logger.info("The request hospital id is {} ", hospitalId); -// msgGenerateService.generateTemplateMsg(hospitalId); -// return ""; -// } + + /** + * 生成孕妇ams消息 + * @param hospitalId + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/generatePatAmsMsg") + @ResponseBody + public String generatePatAmsMsg(@RequestParam(required = false) String hospitalId) + { + + logger.info("The request hospital id is {} ", hospitalId); + msgGenerateService.generatePatAmsMsg(hospitalId); + return ""; + } + + + /** + * 生成儿童ams消息 + * @param hospitalId + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/generateBabyAmsMsg") + @ResponseBody + public String generateBabyAmsMsg(@RequestParam(required = false) String hospitalId) + { + + logger.info("The request hospital id is {} ", hospitalId); + msgGenerateService.generateBabyAmsMsg(hospitalId); + return ""; + } + + + /** + * 生成产妇ams消息 + * @param hospitalId + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/generateChanAmsMsg") + @ResponseBody + public String generateChanAmsMsg(@RequestParam(required = false) String hospitalId) + { + + logger.info("The request hospital id is {} ", hospitalId); + msgGenerateService.generateChanAmsMsg(hospitalId); + return ""; + } + + /** + * 生成模板推送消息 + * @param hospitalId + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/generateTemplateMsg") + @ResponseBody + public String generateTemplateMsg(@RequestParam(required = false) String hospitalId) + { + + logger.info("The request hospital id is {} ", hospitalId); + msgGenerateService.generateTemplateMsg(hospitalId); + return ""; + } } diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/AmsMessageService.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/AmsMessageService.java index d14e9d0..45b7be3 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/AmsMessageService.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/AmsMessageService.java @@ -154,7 +154,7 @@ public class AmsMessageService { } public static void main(String[] args) { - Map> list = getMessageTemplateMap("206", + Map> list = getMessageTemplateMap("2100001435", AmsServiceTypeEnum.CHILD_GUIDE); List msgs = list.get("年龄≥35岁"); System.out.println(msgs); diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/SaveMessageService.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/SaveMessageService.java index 866dfe6..7d7c103 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/SaveMessageService.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/remote/SaveMessageService.java @@ -18,6 +18,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; /** * Created by Administrator on 2016/7/5. @@ -26,6 +28,8 @@ public class SaveMessageService { private static final Logger resultLog = LoggerFactory.getLogger("GEN-RESULT"); + + /** * 保存推送消息到消息中心 * @param list @@ -34,7 +38,7 @@ public class SaveMessageService { public static boolean saveMsgCenter(MessageListRequest list) { String json = JsonUtil.obj2JsonString(list); - resultLog.info(json); + //resultLog.info(json); String result = HttpClientUtil.doPostSSL(ConfigInterface.MSG_BASE_URL+"/biz-push-web/push",json); if (StringUtils.isNotEmpty(result)) { @@ -78,6 +82,9 @@ public class SaveMessageService { public static void main(String[] areg) { + long start = System.currentTimeMillis(); isExistMsg("59964f0ee4b04389242278f2","5993db2af0f0ac844d75bf83"); + long end = System.currentTimeMillis(); + System.out.println(end - start); } } 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 bdf16b2..8ae87ed 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 @@ -31,7 +31,7 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { private static final Logger logger = LoggerFactory.getLogger(MsgGenerateServiceImpl.class); - private static ExecutorService pool = Executors.newFixedThreadPool(10); + private static ExecutorService pool = Executors.newFixedThreadPool(20); @Autowired private IBaseService baseService; @@ -64,7 +64,7 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { logger.info("The generatePatAmsMsg configs hospital size is {}",configModels.size()); if (CollectionUtils.isNotEmpty(configModels)) { - int batchSize = 5; + int batchSize = 3; int end = 0; for (int i = 0; i < configModels.size(); i += batchSize) { end = (end + batchSize); @@ -73,7 +73,7 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { } YunAmsMsgGenerateWorker checkPointCountWorker = new YunAmsMsgGenerateWorker(configModels.subList(i,end), baseService,yunBookbuildingService,week,highRiskService); - pool.submit(checkPointCountWorker); + pool.execute(checkPointCountWorker); } } @@ -90,7 +90,7 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { logger.info("The generateBabyAmsMsg configs hospital size is {}",configModels.size()); if (CollectionUtils.isNotEmpty(configModels)) { - int batchSize = 5; + int batchSize = 3; int end = 0; for (int i = 0; i < configModels.size(); i += batchSize) { end = (end + batchSize); @@ -99,7 +99,7 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { } BabyAmsMsgGenerateWorker checkPointCountWorker = new BabyAmsMsgGenerateWorker(configModels.subList(i,end), baseService,babyBookbuildingService); - pool.submit(checkPointCountWorker); + pool.execute(checkPointCountWorker); } } @@ -116,7 +116,7 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { logger.info("The generateChanAmsMsg configs hospital size is {}",configModels.size()); if (CollectionUtils.isNotEmpty(configModels)) { - int batchSize = 5; + int batchSize = 3; int end = 0; for (int i = 0; i < configModels.size(); i += batchSize) { end = (end + batchSize); @@ -125,7 +125,7 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { } ChanAmsMsgGenerateWorker checkPointCountWorker = new ChanAmsMsgGenerateWorker(configModels.subList(i,end), baseService,yunBookbuildingService); - pool.submit(checkPointCountWorker); + pool.execute(checkPointCountWorker); } } @@ -142,7 +142,7 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { logger.info("The generateChanAmsMsg configs hospital size is {}",configModels.size()); if (CollectionUtils.isNotEmpty(configModels)) { - int batchSize = 5; + int batchSize = 3; int end = 0; for (int i = 0; i < configModels.size(); i += batchSize) { end = (end + batchSize); @@ -151,16 +151,40 @@ public class MsgGenerateServiceImpl implements IMsgGenerateService { } TempleteMsgGenerateWorker worker = new TempleteMsgGenerateWorker(configModels.subList(i,end), baseService,yunBookbuildingService,smsTemplateService,babyBookbuildingService,postReviewService); - pool.submit(worker); + pool.execute(worker); } } } + /** + * 总的方法调用 + */ public void generaterAllMsg() { - generateTemplateMsg(null); - generateChanAmsMsg(null); - generateBabyAmsMsg(null); + logger.info("generater all msg starting."); + new Thread(new Runnable() { + @Override + public void run() { + generateTemplateMsg(null); + } + }).start(); + + + new Thread(new Runnable() { + @Override + public void run() { + generateChanAmsMsg(null); + } + }).start(); + + new Thread(new Runnable() { + @Override + public void run() { + generateBabyAmsMsg(null); + } + }).start(); + generatePatAmsMsg(null); + logger.info("generater all msg ending."); } } diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/utils/HelperUtils.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/utils/HelperUtils.java index 8756681..9fb4fcd 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/utils/HelperUtils.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/utils/HelperUtils.java @@ -18,6 +18,8 @@ import org.slf4j.LoggerFactory; import java.util.Date; import java.util.List; import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; /** * Created by Administrator on 2017-07-19. @@ -25,7 +27,8 @@ import java.util.Map; public class HelperUtils { private static final Logger logger = LoggerFactory.getLogger(HelperUtils.class); - private static final Logger resultLog = LoggerFactory.getLogger("GEN-RESULT"); + + private static ExecutorService pool = Executors.newFixedThreadPool(5); public static int getWeekNum(List guideTimes,String week) { @@ -249,7 +252,7 @@ public class HelperUtils { weekStr = "孕" + week + "周"; if (day > 0) { - weekStr += day + "天"; + weekStr += "+" +day + "天"; } return weekStr; } @@ -267,7 +270,7 @@ public class HelperUtils { if (list != null && list.getMessages() != null) { List msgs = list.getMessages(); - int batchSize = 100; + int batchSize = 50; int end = 0; for (int i = 0; i < msgs.size(); i += batchSize) { end = (end + batchSize); @@ -275,11 +278,16 @@ public class HelperUtils { end = msgs.size(); } logger.info("start:" + i + ",end:" + end); - List tempList = msgs.subList(i, end); - MessageListRequest sentList = new MessageListRequest(); - sentList.setMessages(tempList); - sentList.setTypeId(ProjectTypeEnums.YNXT.getId()); - SaveMessageService.saveMsgCenter(sentList); + final List tempList = msgs.subList(i, end); + pool.execute(new Runnable() { + @Override + public void run() { + MessageListRequest sentList = new MessageListRequest(); + sentList.setMessages(tempList); + sentList.setTypeId(ProjectTypeEnums.YNXT.getId()); + SaveMessageService.saveMsgCenter(sentList); + } + }); } } } diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/BabyAmsMsgGenerateWorker.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/BabyAmsMsgGenerateWorker.java index 0dde91d..c1b4c1c 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/BabyAmsMsgGenerateWorker.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/BabyAmsMsgGenerateWorker.java @@ -78,6 +78,14 @@ public class BabyAmsMsgGenerateWorker implements Runnable { .getMessageTemplateMap(String.valueOf(hospitalId), AmsServiceTypeEnum.CHILD_GUIDE); + if (amsSmses == null || amsSmses.size() == 0) + { + continue; + } + + logger.info("The BabyAmsMsgGenerate hospital id is "+hospitalId); + + BabyModelQuery babyQuery = new BabyModelQuery(); babyQuery.setYn(YnEnums.YES.getId()); babyQuery.setHospitalId(hospitalId); @@ -144,7 +152,6 @@ public class BabyAmsMsgGenerateWorker implements Runnable { list.setMessages(messages); HelperUtils.sendMsg(list); } - } } } diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/ChanAmsMsgGenerateWorker.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/ChanAmsMsgGenerateWorker.java index 8445c5b..3a5acb6 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/ChanAmsMsgGenerateWorker.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/ChanAmsMsgGenerateWorker.java @@ -78,7 +78,12 @@ public class ChanAmsMsgGenerateWorker implements Runnable { Map> amsSmses = AmsMessageService .getMessageTemplateMap(String.valueOf(hospitalId), AmsServiceTypeEnum.CHAN_GUIDE); + if (amsSmses == null || amsSmses.size() == 0) + { + continue; + } + logger.info("The ChanAmsMsgGenerate hospital id is "+hospitalId); PatientsQuery patientsQuery = new PatientsQuery(); patientsQuery.setYn(YnEnums.YES.getId()); 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 f55ce2b..3edf806 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 @@ -91,7 +91,7 @@ public class TempleteMsgGenerateWorker implements Runnable { } try { - int batchSize = 5; + int batchSize = 3; int end = 0; for (int i = 0; i < templates.size(); i += batchSize) { end = (end + batchSize); @@ -143,7 +143,7 @@ public class TempleteMsgGenerateWorker implements Runnable { } catch (Exception e) { - ExceptionUtils.catchException(e,"genernate templete error. ["+template.toString()+"]"); + logger.error("genernate templete error. [" + template.toString() + "]", e); continue; } } @@ -153,7 +153,7 @@ public class TempleteMsgGenerateWorker implements Runnable { } catch (Exception e) { - ExceptionUtils.catchException(e,"genernate config error.["+config.toString()+"]"); + logger.error("genernate config error.["+config.toString()+"]",e); continue; } } @@ -165,7 +165,8 @@ public class TempleteMsgGenerateWorker implements Runnable { * @param template * @param config */ - private void generateChildTempMsg(SmsTemplateModel template, SmsConfigModel config) { + private void generateChildTempMsg(SmsTemplateModel template, SmsConfigModel config) + { //模板属于的医院id String tempHid = template.getHospitalId(); @@ -190,13 +191,13 @@ public class TempleteMsgGenerateWorker implements Runnable { babyModelQuery.setSmsBuildTypeList(buildType); babyModelQuery = HelperUtils.getServiceBabyQuery(serviceType, serviceStatus, babyModelQuery); - //发送短信集合 - MessageListRequest list = new MessageListRequest(); - List messages = new ArrayList<>(); - //儿保预约提醒 if (smsType == SmsServiceEnums.EBYYTX.getId()) { + //发送短信集合 + MessageListRequest list = new MessageListRequest(); + List messages = new ArrayList<>(); + Date yuYueDate = DateUtils.addDay(new Date(), sendTimeType); yuYueDate = DateUtils.formatDate(yuYueDate,DateUtils.Y_M_D); List checkModels = babyBookbuildingService.queryBabyYuYueRecord(yuYueDate, tempHid); @@ -232,6 +233,9 @@ public class TempleteMsgGenerateWorker implements Runnable { } } } + + list.setMessages(messages); + HelperUtils.sendMsg(list); } //儿保程序提醒 else if (smsType == SmsServiceEnums.EBCXTX.getId()) @@ -247,12 +251,18 @@ public class TempleteMsgGenerateWorker implements Runnable { Integer sendDateType = template.getSendDateType(); if (sendDateType == SendDateEnums.SLRQ.getId()) { + //时间类型 Integer specialDateType = template.getSpecialDateType(); //儿童天数 if (specialDateType == SpecialDateEnums.ETTS.getId()) { + + //发送短信集合 + MessageListRequest list = new MessageListRequest(); + List messages = new ArrayList<>(); + Integer start = template.getStart(); Integer end = template.getEnd(); @@ -303,10 +313,18 @@ public class TempleteMsgGenerateWorker implements Runnable { } } } + + list.setMessages(messages); + HelperUtils.sendMsg(list); } //儿童月龄 else if (specialDateType == SpecialDateEnums.ETYL.getId()) { + + //发送短信集合 + MessageListRequest list = new MessageListRequest(); + List messages = new ArrayList<>(); + Integer start = template.getStart(); Integer end = template.getEnd(); @@ -355,13 +373,15 @@ public class TempleteMsgGenerateWorker implements Runnable { } } } + + list.setMessages(messages); + HelperUtils.sendMsg(list); } } } } - list.setMessages(messages); - HelperUtils.sendMsg(list); + } @@ -432,13 +452,13 @@ public class TempleteMsgGenerateWorker implements Runnable { HelperUtils.getServicePatientQuery(serviceType, serviceStatus, patientsQuery); - //发送短信集合 - MessageListRequest list = new MessageListRequest(); - List messages = new ArrayList<>(); - //孕妇预约短信 if (smsType == SmsServiceEnums.CJYYTX.getId()) { + //发送短信集合 + MessageListRequest list = new MessageListRequest(); + List messages = new ArrayList<>(); + Date yuYueDate = DateUtils.addDay(new Date(),sendTimeType); //得到孕妇的id Set idset = baseService.getYuYuePatient(sendTimeType, tempHid); @@ -468,10 +488,17 @@ public class TempleteMsgGenerateWorker implements Runnable { } } } + + list.setMessages(messages); + HelperUtils.sendMsg(list); } //产检程序提醒 else if (smsType == SmsServiceEnums.CJCXTX.getId()) { + //发送短信集合 + MessageListRequest list = new MessageListRequest(); + List messages = new ArrayList<>(); + //发送频次 Integer sendFreq = template.getSendFrequency(); @@ -534,10 +561,9 @@ public class TempleteMsgGenerateWorker implements Runnable { } } } + list.setMessages(messages); + HelperUtils.sendMsg(list); } - - list.setMessages(messages); - HelperUtils.sendMsg(list); } @@ -577,13 +603,13 @@ public class TempleteMsgGenerateWorker implements Runnable { HelperUtils.getServicePatientQuery(serviceType, serviceStatus, patientsQuery); - //发送短信集合 - MessageListRequest list = new MessageListRequest(); - List messages = new ArrayList<>(); - //产妇预约短信 if (smsType == SmsServiceEnums.CHFCYUTX.getId()) { + //发送短信集合 + MessageListRequest list = new MessageListRequest(); + List messages = new ArrayList<>(); + //把时间格式成yyyy_MM_dd Date actualSendDate = DateUtils.formatDate(DateUtils.addDay(new Date(), sendTimeType), DateUtils.Y_M_D); @@ -618,10 +644,18 @@ public class TempleteMsgGenerateWorker implements Runnable { } } } + + list.setMessages(messages); + HelperUtils.sendMsg(list); } //产后复查程序提醒 else if (smsType == SmsServiceEnums.CHFCCXTX.getId()) { + + //发送短信集合 + MessageListRequest list = new MessageListRequest(); + List messages = new ArrayList<>(); + //发送频次 Integer sendFreq = template.getSendFrequency(); @@ -685,9 +719,10 @@ public class TempleteMsgGenerateWorker implements Runnable { } } + list.setMessages(messages); + HelperUtils.sendMsg(list); } - list.setMessages(messages); - HelperUtils.sendMsg(list); + } diff --git a/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/YunAmsMsgGenerateWorker.java b/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/YunAmsMsgGenerateWorker.java index 966261e..5f0d651 100644 --- a/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/YunAmsMsgGenerateWorker.java +++ b/platform-msg-generate/src/main/java/com/lyms/platform/msg/worker/YunAmsMsgGenerateWorker.java @@ -113,13 +113,16 @@ public class YunAmsMsgGenerateWorker implements Runnable { continue; } - - // 查询模板短信 从ams平台配置的短信通过医院ID Map> amsSmses = AmsMessageService .getMessageTemplateMap(hospitalId, AmsServiceTypeEnum.YUN_GUIDE); + if (amsSmses == null || amsSmses.size() == 0) + { + continue; + } + logger.info("The YunAmsMsgGenerate hospital id is "+hospitalId); PatientsQuery patientsQuery = new PatientsQuery(); patientsQuery.setYn(YnEnums.YES.getId()); -- 1.8.3.1