From 0dc3196ac99c55eece25d4845d4195ab09c45ac4 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Mon, 10 Feb 2020 14:15:19 +0800 Subject: [PATCH] update code --- .../com/lyms/platform/pojo/TrackCountRecord.java | 11 ++++ .../web/controller/TrackDownController.java | 12 +++++ .../operate/web/facade/TrackDownFacade.java | 60 ++++++++++++++++++++++ 3 files changed, 83 insertions(+) diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/TrackCountRecord.java b/platform-dal/src/main/java/com/lyms/platform/pojo/TrackCountRecord.java index 9d18079..809da51 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/TrackCountRecord.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/TrackCountRecord.java @@ -34,9 +34,20 @@ public class TrackCountRecord extends BaseModel { private Integer trackStatus; //召回状态 0 未参与召回 1参与召回 private Integer backStatus; + + //下次检查时间 + private Date nextCheckTime; private Date created; private Date modified; + public Date getNextCheckTime() { + return nextCheckTime; + } + + public void setNextCheckTime(Date nextCheckTime) { + this.nextCheckTime = nextCheckTime; + } + public String getId() { return id; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java index c1f2a31..3ba5515 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TrackDownController.java @@ -151,4 +151,16 @@ public class TrackDownController extends BaseController { downFacade.historyData(startTime, endTime, hospitalId, provinceId, cityId, areaId); } + + /** + * 追访统计 + * @param orderTime + */ + @RequestMapping(value = "/getTrackCount", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public BaseResponse getTrackCount(@RequestParam String orderTime,HttpServletRequest request) { + return downFacade.getTrackCount(orderTime, getUserId(request)); + } + } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java index 4d32576..a7f8aaa 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/TrackDownFacade.java @@ -1,6 +1,7 @@ package com.lyms.platform.operate.web.facade; import com.lyms.platform.biz.service.*; +import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.enums.FmTypeEnums; import com.lyms.platform.common.enums.TrackDownDateEnums; import com.lyms.platform.common.enums.YnEnums; @@ -21,6 +22,8 @@ import com.lyms.platform.permission.model.OrganizationQuery; import com.lyms.platform.permission.service.OrganizationService; import com.lyms.platform.pojo.*; import com.lyms.platform.query.*; +import com.mongodb.BasicDBObject; +import com.mongodb.DBObject; import org.apache.commons.collections.CollectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -196,6 +199,8 @@ public class TrackDownFacade { ResponseUtil.responseExcel(cnames, results, response); } + + /** * 构建返回字段 */ @@ -1264,5 +1269,60 @@ public class TrackDownFacade { System.out.println("处理范围 时间" + DateUtil.getyyyy_MM_dd(startTime) + "到" + DateUtil.getyyyy_MM_dd(endTime) + "医院id" + hospitalId); } + public BaseResponse getTrackCount(String orderTime, Integer userId) { + Map data = new HashMap<>(); + String hospitalId = autoMatchFacade.getHospitalId(userId); + if (orderTime != null) + { + String[] arrs = orderTime.split(" - "); + Date start = DateUtil.parseYMD(arrs[0]); + Date end = DateUtil.parseYMD(arrs[1]); + long orderCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end))), TrackCountRecord.class); + data.put("orderCount",String.valueOf(orderCount)); + + long oneTrackCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end)).and("oneTrackStatus").is(1)), TrackCountRecord.class); + data.put("oneTrackCount",String.valueOf(oneTrackCount)); + + long twoTrackCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end)).and("twoTrackStatus").is(1)), TrackCountRecord.class); + data.put("twoTrackCount",String.valueOf(twoTrackCount)); + + long zsCheckCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end)).and("zsCheckStatus").is(1)), TrackCountRecord.class); + data.put("zsCheckCount",String.valueOf(zsCheckCount)); + + long jsCheckCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end)).and("jsCheckStatus").is(1)), TrackCountRecord.class); + data.put("jsCheckCount",String.valueOf(jsCheckCount)); + + long loseCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end)).and("loseStatus").is(1)), TrackCountRecord.class); + data.put("loseCount",String.valueOf(loseCount)); + + long trackCount = sumField("lyms_track_count_record", "trackStatus", Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end)).and("trackStatus").is(1)); + data.put("trackCount",String.valueOf(trackCount)); + + long backCount = mongoTemplate.count(Query.query(Criteria.where("hospitalId").is(hospitalId).and("nextCheckTime").gte(DateUtil.getDayFirstSecond(start)).lte(DateUtil.getDayLastSecond(end)).and("backStatus").is(1)), TrackCountRecord.class); + data.put("backCount",String.valueOf(backCount)); + } + return new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setData(data).setErrormsg("成功"); + } + + public Integer sumField(String collection,String filedName,Criteria criteria) { + Integer total = 0; + String reduce = "function(doc, aggr){ aggr.total +=doc." + filedName + "; }"; + Query query = new Query(); + if(criteria!=null){ + query.addCriteria(criteria); + } + DBObject result = mongoTemplate.getCollection(collection).group(null, + query.getQueryObject(), + new BasicDBObject("total", total), + reduce); + Map map = result.toMap(); + if(map.size() > 0){ + BasicDBObject bdbo = map.get("0"); + if(bdbo != null && bdbo.get("total") != null) + total = bdbo.getInt("total"); + } + return total; + } + } -- 1.8.3.1