Commit 2c9a864a1639ce8ff2bd7c658daa34b09fc81178
1 parent
14ff2b27bc
Exists in
master
and in
1 other branch
统计医生回访数 和回访率PC 小程序通用
Showing 1 changed file with 78 additions and 52 deletions
talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java
View file @
2c9a864
... | ... | @@ -366,63 +366,30 @@ |
366 | 366 | */ |
367 | 367 | @GetMapping("getReturnVisit") |
368 | 368 | @TokenRequired |
369 | - public BaseResponse getReturnVisit(String dlogin,String startTime,String endTime){ | |
369 | + public BaseResponse getReturnVisit(Integer hid,Integer dpid,String dlogin,String startTime,String endTime){ | |
370 | 370 | BaseResponse baseResponse=new BaseResponse(); |
371 | 371 | try { |
372 | - //总回访数 | |
373 | - int visitCount=0; | |
374 | - //有效回访数 | |
375 | - int visitRateCount=0; | |
376 | - | |
377 | - LambdaQueryWrapper<LymsReturnVisitRecord> wrapper = new QueryWrapper().lambda(); | |
378 | - wrapper.eq(LymsReturnVisitRecord::getDlogin, dlogin); | |
379 | - if(StringUtil.isNotEmpty(startTime) && StringUtil.isNotEmpty(endTime)){ | |
380 | - wrapper.ge(LymsReturnVisitRecord::getCreatedtime,DateUtil.getYyyyMmDdHhMmSs(DateUtil.getDayFirstSecond(DateUtil.parseYMD(startTime)))); | |
381 | - wrapper.le(LymsReturnVisitRecord::getCreatedtime, DateUtil.getYyyyMmDdHhMmSs(DateUtil.getDayLastSecond(DateUtil.parseYMD(endTime)))); | |
372 | + List<Map<String,Object>> result = new ArrayList<>(); | |
373 | + LambdaQueryWrapper<LymsDoctor> wrapper = new QueryWrapper().lambda(); | |
374 | + if(null!=hid){ | |
375 | + wrapper.eq(LymsDoctor::getHid,hid); | |
382 | 376 | } |
383 | - wrapper.groupBy(LymsReturnVisitRecord::getHxgroupid); | |
384 | - final List<LymsReturnVisitRecord> visitRecordHxgroupid = lymsReturnVisitRecordService.list(wrapper); | |
385 | - for (LymsReturnVisitRecord visitRecord : visitRecordHxgroupid) { | |
386 | - final List<LymsReturnVisitRecord> visitRecords = lymsReturnVisitRecordService.list(new QueryWrapper<LymsReturnVisitRecord>() | |
387 | - .lambda().eq(LymsReturnVisitRecord::getDlogin, dlogin) | |
388 | - .eq(LymsReturnVisitRecord::getHxgroupid,visitRecord.getHxgroupid()) | |
389 | - .orderByAsc(LymsReturnVisitRecord::getCreatedtime)); | |
390 | - visitCount+=visitRecords.size(); | |
391 | - for(int i=0;i<visitRecords.size();i++){ | |
392 | - if (i+1==visitRecords.size()) { | |
393 | - final int messageCount = lymsMessageService.count(new QueryWrapper<LymsMessage>() | |
394 | - .lambda().eq(LymsMessage::getTargetid,visitRecord.getHxgroupid()) | |
395 | - .eq(LymsMessage::getType,0) | |
396 | - .ge(LymsMessage::getSendtime, visitRecords.get(i).getCreatedtime())); | |
397 | - if (messageCount!=0) { | |
398 | - visitRateCount++; | |
399 | - } | |
400 | - }else { | |
401 | - final int messageCount = lymsMessageService.count(new QueryWrapper<LymsMessage>() | |
402 | - .lambda().eq(LymsMessage::getTargetid,visitRecord.getHxgroupid()) | |
403 | - .eq(LymsMessage::getType,0) | |
404 | - .ge(LymsMessage::getSendtime, visitRecords.get(i).getCreatedtime()) | |
405 | - .le(LymsMessage::getSendtime,visitRecords.get(i+1).getCreatedtime())); | |
406 | - if (messageCount!=0) { | |
407 | - visitRateCount++; | |
408 | - } | |
409 | - | |
410 | - } | |
411 | - } | |
377 | + if(null!=dpid){ | |
378 | + wrapper.eq(LymsDoctor::getDpid,dpid); | |
412 | 379 | } |
413 | - String visitRate="0"; | |
414 | - if (visitCount!=0) { | |
415 | - // 创建一个数值格式化对象 | |
416 | - NumberFormat numberFormat = NumberFormat.getInstance(); | |
417 | - // 设置精确到小数点后2位 | |
418 | - numberFormat.setMaximumFractionDigits(2); | |
419 | - visitRate = numberFormat.format((float)visitRateCount/(float)visitCount*100); | |
380 | + if(null!=dlogin){ | |
381 | + wrapper.eq(LymsDoctor::getDlogin,dlogin); | |
420 | 382 | } |
421 | - | |
422 | - Map<String,Object> map=new HashMap<>(); | |
423 | - map.put("visitCount",visitCount); | |
424 | - map.put("visitRate",visitRate); | |
425 | - baseResponse.setObject(map); | |
383 | + List<LymsDoctor> list = lymsDoctorService.list(wrapper); | |
384 | + for (LymsDoctor lymsDoctor : list) { | |
385 | + Map<String, Object> visitRateMap = getReturn(lymsDoctor.getDlogin(), startTime, endTime); | |
386 | + visitRateMap.put("hid", lymsDoctor.getHid()); | |
387 | + visitRateMap.put("hname", lymsDoctor.getHname()); | |
388 | + visitRateMap.put("dpid", lymsDoctor.getDpid()); | |
389 | + visitRateMap.put("ddname", lymsDoctor.getDdname()); | |
390 | + result.add(visitRateMap); | |
391 | + } | |
392 | + baseResponse.setObject(result); | |
426 | 393 | baseResponse.setErrorcode(0); |
427 | 394 | baseResponse.setErrormsg("成功"); |
428 | 395 | } catch (Exception e) { |
... | ... | @@ -431,5 +398,64 @@ |
431 | 398 | } |
432 | 399 | return baseResponse; |
433 | 400 | } |
401 | + | |
402 | + public Map<String,Object> getReturn(String dlogin,String startTime,String endTime) throws Exception{ | |
403 | + | |
404 | + //总回访数 | |
405 | + int visitCount=0; | |
406 | + //有效回访数 | |
407 | + int visitRateCount=0; | |
408 | + | |
409 | + LambdaQueryWrapper<LymsReturnVisitRecord> wrapper = new QueryWrapper().lambda(); | |
410 | + wrapper.eq(LymsReturnVisitRecord::getDlogin, dlogin); | |
411 | + if(StringUtil.isNotEmpty(startTime) && StringUtil.isNotEmpty(endTime)){ | |
412 | + wrapper.ge(LymsReturnVisitRecord::getCreatedtime,DateUtil.getYyyyMmDdHhMmSs(DateUtil.getDayFirstSecond(DateUtil.parseYMD(startTime)))); | |
413 | + wrapper.le(LymsReturnVisitRecord::getCreatedtime, DateUtil.getYyyyMmDdHhMmSs(DateUtil.getDayLastSecond(DateUtil.parseYMD(endTime)))); | |
414 | + } | |
415 | + wrapper.groupBy(LymsReturnVisitRecord::getHxgroupid); | |
416 | + final List<LymsReturnVisitRecord> visitRecordHxgroupid = lymsReturnVisitRecordService.list(wrapper); | |
417 | + for (LymsReturnVisitRecord visitRecord : visitRecordHxgroupid) { | |
418 | + final List<LymsReturnVisitRecord> visitRecords = lymsReturnVisitRecordService.list(new QueryWrapper<LymsReturnVisitRecord>() | |
419 | + .lambda().eq(LymsReturnVisitRecord::getDlogin, dlogin) | |
420 | + .eq(LymsReturnVisitRecord::getHxgroupid,visitRecord.getHxgroupid()) | |
421 | + .orderByAsc(LymsReturnVisitRecord::getCreatedtime)); | |
422 | + visitCount+=visitRecords.size(); | |
423 | + for(int i=0;i<visitRecords.size();i++){ | |
424 | + if (i+1==visitRecords.size()) { | |
425 | + final int messageCount = lymsMessageService.count(new QueryWrapper<LymsMessage>() | |
426 | + .lambda().eq(LymsMessage::getTargetid,visitRecord.getHxgroupid()) | |
427 | + .eq(LymsMessage::getType,0) | |
428 | + .ge(LymsMessage::getSendtime, visitRecords.get(i).getCreatedtime())); | |
429 | + if (messageCount!=0) { | |
430 | + visitRateCount++; | |
431 | + } | |
432 | + }else { | |
433 | + final int messageCount = lymsMessageService.count(new QueryWrapper<LymsMessage>() | |
434 | + .lambda().eq(LymsMessage::getTargetid,visitRecord.getHxgroupid()) | |
435 | + .eq(LymsMessage::getType,0) | |
436 | + .ge(LymsMessage::getSendtime, visitRecords.get(i).getCreatedtime()) | |
437 | + .le(LymsMessage::getSendtime,visitRecords.get(i+1).getCreatedtime())); | |
438 | + if (messageCount!=0) { | |
439 | + visitRateCount++; | |
440 | + } | |
441 | + | |
442 | + } | |
443 | + } | |
444 | + } | |
445 | + String visitRate="0"; | |
446 | + if (visitCount!=0) { | |
447 | + // 创建一个数值格式化对象 | |
448 | + NumberFormat numberFormat = NumberFormat.getInstance(); | |
449 | + // 设置精确到小数点后2位 | |
450 | + numberFormat.setMaximumFractionDigits(2); | |
451 | + visitRate = numberFormat.format((float)visitRateCount/(float)visitCount*100); | |
452 | + } | |
453 | + | |
454 | + Map<String,Object> map=new HashMap<>(); | |
455 | + map.put("visitCount",visitCount); | |
456 | + map.put("visitRate",visitRate); | |
457 | + return map; | |
458 | + } | |
459 | + | |
434 | 460 | } |