Commit 2df4f350f6570a692915e68df56a7bfa32144acf

Authored by liquanyu
1 parent a6f2e90645

Merge branch 'master' of E:\mycelipse_workspace\longmei\regional-platform with conflicts.

Showing 7 changed files with 135 additions and 54 deletions

platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/AntenatalExaminationDaoImpl.java View file @ 2df4f35
... ... @@ -62,7 +62,8 @@
62 62  
63 63 @Override
64 64 public List<AntenatalExaminationModel> queryYuyueAntenatalExamination(Date yuYueDate,String hospitalId) {
65   - AggregationOperation match = Aggregation.match(Criteria.where("nextCheckTime").gte(yuYueDate).lte(yuYueDate).and("hospitalId").is(hospitalId));
  65 + AggregationOperation match = Aggregation.match(Criteria.where("hospitalId").gte(yuYueDate).lte(yuYueDate).and("hospitalId").is(hospitalId));
  66 +// AggregationOperation match = Aggregation.match(Criteria.where("nextCheckTime").gte(yuYueDate).lte(yuYueDate).and("hospitalId").is(hospitalId));
66 67 AggregationOperation group = Aggregation.group("parentId").max("created").as("created");
67 68 Aggregation aggregation = Aggregation.newAggregation(match, group);
68 69 AggregationResults<AntenatalExaminationModel> result = this.mongoTemplate.aggregate(aggregation, "lyms_antex", AntenatalExaminationModel.class);
platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/AntenatalExaminationService.java View file @ 2df4f35
... ... @@ -142,5 +142,10 @@
142 142 public List<AntenatalExaminationModel> queryYuyueAntenatalExamination(Date startDate,String hospitalId,String pid) {
143 143 return iAntenatalExaminationDao.queryYuyueAntenatalExamination(startDate, hospitalId,pid);
144 144 }
  145 +
  146 +
  147 + public List<AntenatalExaminationModel> queryLastAntenatalExamination(MongoQuery query) {
  148 + return iAntenatalExaminationDao.queryAntenatalExamination(query.addOrder(Sort.Direction.DESC, "created"));
  149 + }
145 150 }
platform-dal/src/main/java/com/lyms/platform/pojo/HighRiskSmsModel.java View file @ 2df4f35
... ... @@ -33,6 +33,15 @@
33 33 private Date modified;
34 34  
35 35 private String phone;
  36 + private String messageId;
  37 +
  38 + public String getMessageId() {
  39 + return messageId;
  40 + }
  41 +
  42 + public void setMessageId(String messageId) {
  43 + this.messageId = messageId;
  44 + }
36 45  
37 46 public String getId() {
38 47 return id;
platform-dal/src/main/java/com/lyms/platform/query/HighRiskSmsQuery.java View file @ 2df4f35
... ... @@ -31,6 +31,16 @@
31 31  
32 32 private String phone;
33 33  
  34 + private String messageId;
  35 +
  36 + public String getMessageId() {
  37 + return messageId;
  38 + }
  39 +
  40 + public void setMessageId(String messageId) {
  41 + this.messageId = messageId;
  42 + }
  43 +
34 44 @Override
35 45 public MongoQuery convertToQuery() {
36 46 MongoCondition condition = MongoCondition.newInstance();
... ... @@ -40,6 +50,8 @@
40 50  
41 51 if (null != patientId) {
42 52 condition = condition.and("patientId", patientId, MongoOper.IS);
  53 + } if (null != messageId) {
  54 + condition = condition.and("messageId", messageId, MongoOper.IS);
43 55 }
44 56 if(null!=highId){
45 57 condition=condition.and("highId",highId,MongoOper.IS);
platform-data-api/src/main/java/com/lyms/platform/data/pojo/MessageContent.java View file @ 2df4f35
... ... @@ -12,6 +12,16 @@
12 12 private String content;
13 13 private String title;
14 14 private List<Tag> tags;
  15 + private String highRiskId;
  16 +
  17 + public String getHighRiskId() {
  18 + return highRiskId;
  19 + }
  20 +
  21 + public void setHighRiskId(String highRiskId) {
  22 + this.highRiskId = highRiskId;
  23 + }
  24 +
15 25 public String getId() {
16 26 return id;
17 27 }
platform-data-api/src/main/java/com/lyms/platform/data/service/impl/SmsServiceImpl.java View file @ 2df4f35
... ... @@ -95,54 +95,47 @@
95 95  
96 96 if (CollectionUtils.isNotEmpty(configs))
97 97 {
98   - for(SmsConfigModel config : configs)
99   - {
  98 + for(SmsConfigModel config : configs) {
100 99 String hospitalId = config.getHospitalId();
101   - if (StringUtils.isEmpty(hospitalId))
102   - {
  100 + if (StringUtils.isEmpty(hospitalId)) {
103 101 continue;
104 102 }
105 103  
106 104 //每周几发送的指导短信
107 105 String timeStr = config.getGuideTime();
108   - if (StringUtils.isEmpty(timeStr))
109   - {
  106 + if (StringUtils.isEmpty(timeStr)) {
110 107 continue;
111 108 }
112 109  
113 110 List<String> guideTimes = JsonUtil.toList(timeStr, String.class);
114   - if (guideTimes == null || guideTimes.size() != 2)
115   - {
  111 + if (guideTimes == null || guideTimes.size() != 2) {
116 112 continue;
117 113 }
118 114  
119 115 //判断医院是否运行
120   - if (!isRunning(hospitalId))
121   - {
  116 + if (!isRunning(hospitalId)) {
122 117 continue;
123 118 }
124 119  
125 120 String strService = config.getSmsService();
126 121  
127 122 //判断消息服务是否启动
128   - boolean isStart = isStartService(SmsServiceEnums.YBZD.getId(),strService);
129   - if (!isStart)
130   - {
  123 + boolean isStart = isStartService(SmsServiceEnums.YBZD.getId(), strService);
  124 + if (!isStart) {
131 125 continue;
132 126 }
133 127  
134   - //通过医院id先从缓存中取 如果没有取到就调用ams获取该医院短信 并保存到amsSmses中
135   - Map<String, List<MessageContent>> amsSmses = amsSmsCache.get(hospitalId);
136   - if (amsSmses == null || amsSmses.size() == 0)
137   - {
138   - // 查询模板短信 从ams平台配置的短信通过医院ID
139   - amsSmses = AmsMessageService
  128 + //通过医院id先从缓存中取 如果没有取到就调用ams获取该医院短信 并保存到amsSmses中
  129 + Map<String, List<MessageContent>> amsSmses = amsSmsCache.get(hospitalId);
  130 + if (amsSmses == null || amsSmses.size() == 0)
  131 + {
  132 + // 查询模板短信 从ams平台配置的短信通过医院ID
  133 + amsSmses = AmsMessageService
140 134 .getMessageTemplateMap(hospitalId,
141 135 AmsServiceTypeEnum.YUN_GUIDE);
142   - amsSmsCache.put(String.valueOf(hospitalId),amsSmses);
  136 + amsSmsCache.put(hospitalId,amsSmses);
  137 + }
143 138  
144   - }
145   -
146 139 PatientsQuery patientsQuery = new PatientsQuery();
147 140 patientsQuery.setYn(YnEnums.YES.getId());
148 141 patientsQuery.setHospitalId(hospitalId);
149 142  
150 143  
151 144  
152 145  
153 146  
154 147  
155 148  
156 149  
157 150  
158 151  
159 152  
... ... @@ -247,52 +240,72 @@
247 240 List risks = findLastRisk(pat.getPid());
248 241 if (CollectionUtils.isNotEmpty(risks))
249 242 {
  243 + List<MessageContent> highRiskContents = new ArrayList();
  244 + //把多种高危因素的短信合并在一起
250 245 for (Object obj : risks)
251 246 {
252 247 Map<String,Object> riskMap = (Map<String,Object>)obj;
253   -
254   - HighRiskSmsQuery hquery = new HighRiskSmsQuery();
255   - hquery.setHighId(String.valueOf(riskMap.get("id")));
256   - hquery.setPhone(pat.getPhone());
257   - hquery.setPatientId(pat.getId());
258   - int count = highRiskService.queryHighRiskCount(hquery);
259   - if (count > 0)
260   - {
261   - continue;
262   - }
263   -
264 248 String name = String.valueOf(riskMap.get("name"));
265 249 List<MessageContent> messageContents = amsSmses.get(name);
266 250 if (CollectionUtils.isNotEmpty(messageContents))
267 251 {
268 252 for (MessageContent message : messageContents)
269 253 {
270   - String messageContent = "【"+messagePrefix+"】" + message.getContent();
  254 + message.setHighRiskId(String.valueOf(riskMap.get("id")));
  255 + }
  256 + }
  257 + highRiskContents.addAll(messageContents);
  258 + }
  259 + if (CollectionUtils.isNotEmpty(highRiskContents))
  260 + {
  261 + //可以发送的高危短信
  262 + List<MessageContent> sendMessageContents = new ArrayList<>();
271 263  
272   - MessageRequest request = getMessageRequest( messageContent,pat.getPhone(),ServiceObjEnums.YUNOBJ.getId(), SmsServiceEnums.GWZD.getId(),
273   - pat.getHospitalId(),message.getId(),pat.getId());
  264 + for (MessageContent message : highRiskContents)
  265 + {
274 266  
  267 + HighRiskSmsQuery hquery = new HighRiskSmsQuery();
  268 + hquery.setMessageId(message.getId());
  269 + hquery.setHighId(message.getHighRiskId());
  270 + hquery.setPhone(pat.getPhone());
  271 + hquery.setPatientId(pat.getId());
  272 +
  273 + int count = highRiskService.queryHighRiskCount(hquery);
  274 + if (count > 0)
  275 + {
  276 + continue;
  277 + }
  278 + //把未发送过的添加到集合中
  279 + sendMessageContents.add(message);
  280 + }
  281 +
  282 + if (CollectionUtils.isNotEmpty(sendMessageContents)) {
  283 +
  284 + //根据集合的长度随机一个数字
  285 + int index = (int)(Math.random()*sendMessageContents.size());
  286 +
  287 + //从集合中随机取一个发送
  288 + MessageContent message =sendMessageContents.get(index);
  289 + String messageContent = "【" + messagePrefix + "】" + message.getContent();
  290 + MessageRequest request = getMessageRequest(messageContent, pat.getPhone(), ServiceObjEnums.YUNOBJ.getId(), SmsServiceEnums.GWZD.getId(),
  291 + pat.getHospitalId(), message.getId(), pat.getId());
275 292 messages.add(request);
276   - isRisk = true;
277 293  
278   - HighRiskSmsModel highRiskSmsModel = new HighRiskSmsModel();
  294 + HighRiskSmsModel highRiskSmsModel = new HighRiskSmsModel();
279 295 highRiskSmsModel.setPatientId(pat.getId());
280   - highRiskSmsModel.setHighId(String.valueOf(riskMap.get("id")));
  296 + highRiskSmsModel.setHighId(message.getHighRiskId());
281 297 highRiskSmsModel.setPhone(pat.getPhone());
282 298 highRiskSmsModel.setHospitalId(pat.getHospitalId());
283 299 highRiskSmsModel.setCreated(new Date());
284 300 highRiskSmsModel.setModified(new Date());
  301 + highRiskSmsModel.setMessageId(message.getId());
285 302 highRiskService.addHighRiskSmsModel(highRiskSmsModel);
286 303  
287   - break;
288   - }
  304 + isRisk = true;
289 305  
290   - if (isRisk)
291   - {
292   - break;
293 306 }
294 307 }
295   - }
  308 +
296 309 }
297 310 }
298 311  
... ... @@ -309,7 +322,7 @@
309 322 {
310 323 for(MessageContent message : messageContents)
311 324 {
312   -// //判断当前短信是否已经发送 通过短信ID和孕妇ID
  325 + //判断当前短信是否已经发送 通过短信ID和孕妇ID
313 326 boolean isExist = SaveMessageService.isExistSms(pat.getId(), message.getId());
314 327 if (isExist)
315 328 {
... ... @@ -2217,7 +2230,19 @@
2217 2230  
2218 2231 for (AntenatalExaminationModel f : fuzs)
2219 2232 {
2220   - idset.add(f.getId()); //这里的id就是parentid
  2233 +
  2234 + AntExQuery antExQuery = new AntExQuery();
  2235 + antExQuery.setYn(YnEnums.YES.getId());
  2236 + antExQuery.setParentId(f.getId());
  2237 +
  2238 + List<AntenatalExaminationModel> list = antenatalExaminationService.queryLastAntenatalExamination(antExQuery.convertToQuery());
  2239 + if (CollectionUtils.isNotEmpty(list))
  2240 + {
  2241 + if (list.get(0).getNextCheckTime() != null)
  2242 + {
  2243 + idset.add(f.getId()); //这里的id就是parentid
  2244 + }
  2245 + }
2221 2246 }
2222 2247 return idset;
2223 2248 }
... ... @@ -2263,7 +2288,18 @@
2263 2288  
2264 2289 for (AntenatalExaminationModel f : fuzs)
2265 2290 {
2266   - idset.add(f.getParentId());
  2291 + AntExQuery antExQuery = new AntExQuery();
  2292 + antExQuery.setYn(YnEnums.YES.getId());
  2293 + antExQuery.setParentId(f.getId());
  2294 +
  2295 + List<AntenatalExaminationModel> list = antenatalExaminationService.queryLastAntenatalExamination(antExQuery.convertToQuery());
  2296 + if (CollectionUtils.isNotEmpty(list))
  2297 + {
  2298 + if (list.get(0).getNextCheckTime() != null)
  2299 + {
  2300 + idset.add(f.getId()); //这里的id就是parentid
  2301 + }
  2302 + }
2267 2303 }
2268 2304 return idset.size() > 0;
2269 2305 }
platform-data-api/src/main/java/com/lyms/platform/data/util/AmsMessageService.java View file @ 2df4f35
... ... @@ -82,13 +82,13 @@
82 82 params.put("limit", "9999");
83 83 String str = HttpRequest.sendGet(AMS_URL,
84 84 params, headers);
85   - System.out.println(str);
  85 +// System.out.println(str);
86 86 ObjectMapper om = new ObjectMapper();
87 87 MessageResponseEntity mre = null;
88 88 Map<String,List<MessageContent>> map = new HashMap<String, List<MessageContent>>();
89 89 try {
90 90 mre = om.readValue(str, MessageResponseEntity.class);
91   - System.out.println(mre);
  91 +// System.out.println(mre);
92 92 } catch (JsonParseException e) {
93 93 e.printStackTrace();
94 94 } catch (JsonMappingException e) {
... ... @@ -124,8 +124,9 @@
124 124 }
125 125 }
126 126 }else{//失败
127   - logger.error("error info :errorcode="+mre.getErrorcode()
128   - +" errormsg="+mre.getErrormsg());
  127 + System.out.println("hospitalId="+hospitalId+"---"+mre);
  128 + logger.error("error info :errorcode=" + mre.getErrorcode()
  129 + + " errormsg=" + mre.getErrormsg());
129 130 }
130 131 }else{
131 132 logger.error("接口调用失败!!!");
132 133  
... ... @@ -182,8 +183,15 @@
182 183  
183 184  
184 185 public static void main(String[] args) {
185   -// getMessageTemplateMap("8be01f59-ad25-4ae6-968d-8450c9421e0b",
  186 +// Map<String,List<MessageContent>> list = getMessageTemplateMap("242",
186 187 // AmsServiceTypeEnum.CHILD_GUIDE);
  188 +//
  189 +// List<MessageContent> msgs = list.get("新生儿感染");
  190 + for (int i = 0;i< 100 ;i++)
  191 + {
  192 + int index = (int)(Math.random()*8);
  193 + System.out.println(index);
  194 + }
187 195  
188 196 // String result = "头:9.5|胸:10.0|腹:10.0";
189 197 // String b = "";