diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java index 5076ff7..d965236 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/controller/DoctorController.java @@ -366,63 +366,30 @@ public class DoctorController { */ @GetMapping("getReturnVisit") @TokenRequired - public BaseResponse getReturnVisit(String dlogin,String startTime,String endTime){ + public BaseResponse getReturnVisit(Integer hid,Integer dpid,String dlogin,String startTime,String endTime){ BaseResponse baseResponse=new BaseResponse(); try { - //总回访数 - int visitCount=0; - //有效回访数 - int visitRateCount=0; - - LambdaQueryWrapper wrapper = new QueryWrapper().lambda(); - wrapper.eq(LymsReturnVisitRecord::getDlogin, dlogin); - if(StringUtil.isNotEmpty(startTime) && StringUtil.isNotEmpty(endTime)){ - wrapper.ge(LymsReturnVisitRecord::getCreatedtime,DateUtil.getYyyyMmDdHhMmSs(DateUtil.getDayFirstSecond(DateUtil.parseYMD(startTime)))); - wrapper.le(LymsReturnVisitRecord::getCreatedtime, DateUtil.getYyyyMmDdHhMmSs(DateUtil.getDayLastSecond(DateUtil.parseYMD(endTime)))); + List> result = new ArrayList<>(); + LambdaQueryWrapper wrapper = new QueryWrapper().lambda(); + if(null!=hid){ + wrapper.eq(LymsDoctor::getHid,hid); } - wrapper.groupBy(LymsReturnVisitRecord::getHxgroupid); - final List visitRecordHxgroupid = lymsReturnVisitRecordService.list(wrapper); - for (LymsReturnVisitRecord visitRecord : visitRecordHxgroupid) { - final List visitRecords = lymsReturnVisitRecordService.list(new QueryWrapper() - .lambda().eq(LymsReturnVisitRecord::getDlogin, dlogin) - .eq(LymsReturnVisitRecord::getHxgroupid,visitRecord.getHxgroupid()) - .orderByAsc(LymsReturnVisitRecord::getCreatedtime)); - visitCount+=visitRecords.size(); - for(int i=0;i() - .lambda().eq(LymsMessage::getTargetid,visitRecord.getHxgroupid()) - .eq(LymsMessage::getType,0) - .ge(LymsMessage::getSendtime, visitRecords.get(i).getCreatedtime())); - if (messageCount!=0) { - visitRateCount++; - } - }else { - final int messageCount = lymsMessageService.count(new QueryWrapper() - .lambda().eq(LymsMessage::getTargetid,visitRecord.getHxgroupid()) - .eq(LymsMessage::getType,0) - .ge(LymsMessage::getSendtime, visitRecords.get(i).getCreatedtime()) - .le(LymsMessage::getSendtime,visitRecords.get(i+1).getCreatedtime())); - if (messageCount!=0) { - visitRateCount++; - } - - } - } + if(null!=dpid){ + wrapper.eq(LymsDoctor::getDpid,dpid); } - String visitRate="0"; - if (visitCount!=0) { - // 创建一个数值格式化对象 - NumberFormat numberFormat = NumberFormat.getInstance(); - // 设置精确到小数点后2位 - numberFormat.setMaximumFractionDigits(2); - visitRate = numberFormat.format((float)visitRateCount/(float)visitCount*100); + if(null!=dlogin){ + wrapper.eq(LymsDoctor::getDlogin,dlogin); } - - Map map=new HashMap<>(); - map.put("visitCount",visitCount); - map.put("visitRate",visitRate); - baseResponse.setObject(map); + List list = lymsDoctorService.list(wrapper); + for (LymsDoctor lymsDoctor : list) { + Map visitRateMap = getReturn(lymsDoctor.getDlogin(), startTime, endTime); + visitRateMap.put("hid", lymsDoctor.getHid()); + visitRateMap.put("hname", lymsDoctor.getHname()); + visitRateMap.put("dpid", lymsDoctor.getDpid()); + visitRateMap.put("ddname", lymsDoctor.getDdname()); + result.add(visitRateMap); + } + baseResponse.setObject(result); baseResponse.setErrorcode(0); baseResponse.setErrormsg("成功"); } catch (Exception e) { @@ -431,4 +398,63 @@ public class DoctorController { } return baseResponse; } + + public Map getReturn(String dlogin,String startTime,String endTime) throws Exception{ + + //总回访数 + int visitCount=0; + //有效回访数 + int visitRateCount=0; + + LambdaQueryWrapper wrapper = new QueryWrapper().lambda(); + wrapper.eq(LymsReturnVisitRecord::getDlogin, dlogin); + if(StringUtil.isNotEmpty(startTime) && StringUtil.isNotEmpty(endTime)){ + wrapper.ge(LymsReturnVisitRecord::getCreatedtime,DateUtil.getYyyyMmDdHhMmSs(DateUtil.getDayFirstSecond(DateUtil.parseYMD(startTime)))); + wrapper.le(LymsReturnVisitRecord::getCreatedtime, DateUtil.getYyyyMmDdHhMmSs(DateUtil.getDayLastSecond(DateUtil.parseYMD(endTime)))); + } + wrapper.groupBy(LymsReturnVisitRecord::getHxgroupid); + final List visitRecordHxgroupid = lymsReturnVisitRecordService.list(wrapper); + for (LymsReturnVisitRecord visitRecord : visitRecordHxgroupid) { + final List visitRecords = lymsReturnVisitRecordService.list(new QueryWrapper() + .lambda().eq(LymsReturnVisitRecord::getDlogin, dlogin) + .eq(LymsReturnVisitRecord::getHxgroupid,visitRecord.getHxgroupid()) + .orderByAsc(LymsReturnVisitRecord::getCreatedtime)); + visitCount+=visitRecords.size(); + for(int i=0;i() + .lambda().eq(LymsMessage::getTargetid,visitRecord.getHxgroupid()) + .eq(LymsMessage::getType,0) + .ge(LymsMessage::getSendtime, visitRecords.get(i).getCreatedtime())); + if (messageCount!=0) { + visitRateCount++; + } + }else { + final int messageCount = lymsMessageService.count(new QueryWrapper() + .lambda().eq(LymsMessage::getTargetid,visitRecord.getHxgroupid()) + .eq(LymsMessage::getType,0) + .ge(LymsMessage::getSendtime, visitRecords.get(i).getCreatedtime()) + .le(LymsMessage::getSendtime,visitRecords.get(i+1).getCreatedtime())); + if (messageCount!=0) { + visitRateCount++; + } + + } + } + } + String visitRate="0"; + if (visitCount!=0) { + // 创建一个数值格式化对象 + NumberFormat numberFormat = NumberFormat.getInstance(); + // 设置精确到小数点后2位 + numberFormat.setMaximumFractionDigits(2); + visitRate = numberFormat.format((float)visitRateCount/(float)visitCount*100); + } + + Map map=new HashMap<>(); + map.put("visitCount",visitCount); + map.put("visitRate",visitRate); + return map; + } + }