diff --git a/platform-biz-service/src/main/resources/mainOrm/master/HospitalCheckItemConf.xml b/platform-biz-service/src/main/resources/mainOrm/master/HospitalCheckItemConf.xml index d46bdc8..d05c2de 100644 --- a/platform-biz-service/src/main/resources/mainOrm/master/HospitalCheckItemConf.xml +++ b/platform-biz-service/src/main/resources/mainOrm/master/HospitalCheckItemConf.xml @@ -36,18 +36,14 @@ update hosptial_check_itme_conf + need_check_item = #{needCheckItem,jdbcType=VARCHAR}, + backup_check_item = #{backupCheckItem,jdbcType=VARCHAR}, start_week = #{startWeek,jdbcType=INTEGER}, end_week = #{endWeek,jdbcType=INTEGER}, - - need_check_item = #{needCheckItem,jdbcType=VARCHAR}, - - - backup_check_item = #{backupCheckItem,jdbcType=VARCHAR}, - yn = #{yn,jdbcType=INTEGER}, diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java index df7c784..65d2d23 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java @@ -195,9 +195,10 @@ public class MatDeliverController extends BaseController { String hospitalId = autoMatchFacade.getHospitalId(childbirthManagerRequest.getOperatorId()); //威县数据流转 根据接诊医生查询 - if(OrganizationConstant.XT_WX.equals(hospitalId)){ + //又说去掉了 + /*if(OrganizationConstant.XT_WX.equals(hospitalId)){ childbirthManagerRequest.setDeliverDoctor(String.valueOf(childbirthManagerRequest.getOperatorId())); - } + }*/ try { Map query; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/WxStatisticsController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/WxStatisticsController.java new file mode 100644 index 0000000..b0a5f51 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/WxStatisticsController.java @@ -0,0 +1,49 @@ +package com.lyms.platform.operate.web.controller; + +import com.lyms.platform.common.annotation.TokenRequired; +import com.lyms.platform.common.base.LoginContext; +import com.lyms.platform.common.constants.ErrorCodeConstants; +import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.utils.HttpRequest; +import com.lyms.platform.operate.web.service.WxStatisticsService; +import org.omg.PortableInterceptor.SUCCESSFUL; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; + +/** + * 邢台威县统计Controller + */ +@Controller +@RequestMapping("/wxtj") +public class WxStatisticsController { + + + @Autowired + WxStatisticsService wxStatisticsService; + //@TokenRequired + @ResponseBody + @RequestMapping(value = "/zhuifang", method = RequestMethod.GET) + public BaseResponse statistics(HttpServletRequest httpServletRequest, Integer type, String startDate, String endDate){ + BaseResponse baseResponse = new BaseResponse(); + baseResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + Integer userId = 1000000185;//((LoginContext) httpServletRequest.getAttribute("loginContext")).getId(); + Map map = new HashMap<>(); + if(type == 1){ + map =wxStatisticsService.postReviewStatistic(startDate,endDate,userId); + }else if(type == 2){ + map = wxStatisticsService.matdeliverFollowStatistic(startDate,endDate,userId); + }else if(type == 3){ + map = wxStatisticsService.antexOverDateTraceDownStatistic(startDate,endDate,userId); + } + baseResponse.setObject(map); + + return baseResponse; + } +} 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 6a18abe..2543ed3 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 @@ -991,7 +991,8 @@ public class TrackDownFacade { for (TrackDownRecord downRecord : downRecordList) { downRecord.setOverTimes(downRecord.getOverTimes() == null ? 1 : downRecord.getOverTimes()+1); - downRecord.setNextCheckTime(DateUtil.addDay(time,7)); + //不能自动更新 cfl + //downRecord.setNextCheckTime(DateUtil.addDay(time,7)); trackDownRecordService.updateTrackDown(downRecord,downRecord.getId()); } } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/WxStatisticsService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/WxStatisticsService.java new file mode 100644 index 0000000..9a786c2 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/WxStatisticsService.java @@ -0,0 +1,37 @@ +package com.lyms.platform.operate.web.service; + +import java.util.Map; + +/** + * + */ +public interface WxStatisticsService { + /** + * 产后复查率统计 + * @param startDate + * @param endDate + * @param userId + * @return + */ + Map postReviewStatistic(String startDate, String endDate, Integer userId); + + /** + * 产后访视率统计 + * @param startDate + * @param endDate + * @param userId + * @return + */ + Map matdeliverFollowStatistic(String startDate, String endDate, Integer userId); + + + /** + * 产检追访率=产检逾期已追访人数/产检逾期总人数*100% + * @param startDate + * @param endDate + * @param userId + * @return + */ + Map antexOverDateTraceDownStatistic(String startDate, String endDate, Integer userId); + +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/WxStatisticsServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/WxStatisticsServiceImpl.java new file mode 100644 index 0000000..6e7f392 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/WxStatisticsServiceImpl.java @@ -0,0 +1,166 @@ +package com.lyms.platform.operate.web.service.impl; + +import com.lyms.platform.biz.service.AntExRecordService; +import com.lyms.platform.biz.service.PatientsService; +import com.lyms.platform.biz.service.TrackDownRecordService; +import com.lyms.platform.biz.service.YunBookbuildingService; +import com.lyms.platform.common.enums.TrackDownDateEnums; +import com.lyms.platform.common.enums.TrackDownTypeEnums; +import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.operate.web.facade.AutoMatchFacade; +import com.lyms.platform.operate.web.service.WxStatisticsService; +import com.lyms.platform.operate.web.utils.CollectionUtils; +import com.lyms.platform.pojo.AntExRecordModel; +import com.lyms.platform.pojo.Patients; +import com.lyms.platform.pojo.TrackDown; +import com.lyms.platform.pojo.TrackDownRecord; +import com.lyms.platform.query.AntExRecordQuery; +import com.lyms.platform.query.PatientsQuery; +import com.lyms.platform.query.TrackDownRecordQuery; +import com.mongodb.DBCollection; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.aggregation.Aggregation; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.stereotype.Service; + +import java.util.*; + +@Service +public class WxStatisticsServiceImpl implements WxStatisticsService { + + @Autowired + private AutoMatchFacade autoMatchFacade; + + @Autowired + private YunBookbuildingService yunBookbuildingService; + + @Autowired + private PatientsService patientsService; + + @Autowired + private TrackDownRecordService trackDownRecordService; + + @Autowired + MongoTemplate mongoTemplate; + + @Override + public Map postReviewStatistic(String startDate,String endDate,Integer userId) { + + String hospital = autoMatchFacade.getHospitalId(userId); + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setFmDateStart(DateUtil.parseYMD(startDate)); + patientsQuery.setFmDateEnd(DateUtil.parseYMDEnd(endDate)); + patientsQuery.setHospitalId(hospital); + patientsQuery.setType(3); + patientsQuery.setIsAutoFm(YnEnums.NO.getId()); + patientsQuery.setYn(YnEnums.YES.getId()); + List patientss = yunBookbuildingService.queryPregnantWithQuery(patientsQuery); + + List pids = new ArrayList<>(); + for(Patients p:patientss){ + pids.add(p.getId()); + } + + Query query = Query.query(Criteria.where("parentId").in(pids).andOperator(Criteria.where("yn").is(YnEnums.YES.getId()))); + //分娩人数 + long count = mongoTemplate.count(query, "lyms_matdeliver"); + + long fuchaCount = mongoTemplate.count(query, "lyms_postreview"); + + Map returnMap = new HashMap<>(); + returnMap.put("fz",String.valueOf(fuchaCount)); + returnMap.put("fm",String.valueOf(count)); + returnMap.put("rate",count == 0 ?"--":(Math.round(fuchaCount*100/Double.valueOf(count))+"%")); + System.out.println("postReviewStatistic==="+count+"========"+fuchaCount); + return returnMap; + } + + @Override + public Map matdeliverFollowStatistic(String startDate, String endDate, Integer userId) { + String hospital = autoMatchFacade.getHospitalId(userId); + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setFmDateStart(DateUtil.parseYMD(startDate)); + patientsQuery.setFmDateEnd(DateUtil.parseYMDEnd(endDate)); + patientsQuery.setHospitalId(hospital); + patientsQuery.setType(3); + patientsQuery.setIsAutoFm(YnEnums.NO.getId()); + patientsQuery.setYn(YnEnums.YES.getId()); + List patientss = yunBookbuildingService.queryPregnantWithQuery(patientsQuery); + + List pids = new ArrayList<>(); + for(Patients p:patientss){ + pids.add(p.getId()); + } + + Query query = Query.query(Criteria.where("parentId").in(pids).andOperator(Criteria.where("yn").is(YnEnums.YES.getId()))); + //分娩人数 + long count = mongoTemplate.count(query, "lyms_matdeliver"); + + + Query query1 = Query.query(Criteria.where("parentId").in(pids) + .andOperator(Criteria.where("visitStatus").is(2))); + query1.addCriteria(Criteria.where("yn").is(YnEnums.YES.getId())); + + long fuchaCount = mongoTemplate.count(query1, "lyms_matdeliver"); + + Map returnMap = new HashMap<>(); + returnMap.put("fz",String.valueOf(fuchaCount)); + returnMap.put("fm",String.valueOf(count)); + returnMap.put("rate",count == 0 ?"--":(Math.round(fuchaCount*100/Double.valueOf(count))+"%")); + System.out.println(count+"========"+fuchaCount); + return returnMap; + } + + @Override + public Map antexOverDateTraceDownStatistic(String startDate, String endDate, Integer userId) { + Map returnMap = new HashMap<>(); + String hospital = autoMatchFacade.getHospitalId(userId); + //查询这个时间段内的产检记录 + PatientsQuery patientsQuery = new PatientsQuery(); + patientsQuery.setHospitalId(hospital); + patientsQuery.setYn(YnEnums.YES.getId()); + patientsQuery.setBookbuildingDateStart(DateUtil.parseYMD(startDate)); + patientsQuery.setBookbuildingDateEnd(DateUtil.parseYMDEnd(endDate)); + List patientses = patientsService.queryPatient(patientsQuery); + //这段时间无预约产检记录 + if(CollectionUtils.isEmpty(patientses)){ + returnMap.put("fz","0"); + returnMap.put("fm","0"); + returnMap.put("rate","--"); + return returnMap; + } + List patientsIds = new ArrayList<>(); + for(Patients patients: patientses){ + patientsIds.add(patients.getId()); + } + + + + Query query = Query.query(Criteria.where("parentId").in(patientsIds) + .andOperator(Criteria.where("trackType").is(TrackDownDateEnums.C.getId()))); + query.addCriteria(Criteria.where("overTimes").gte(1)); + + long fm = mongoTemplate.count(query, "lyms_trackdown_record"); + + Query query1 = Query.query(Criteria.where("parentId").in(patientsIds) + .andOperator(Criteria.where("trackDownDateType").is(TrackDownDateEnums.C.getId()))); + + List trackDowns = mongoTemplate.find(query1, TrackDown.class); + Set set= new HashSet<>(); + for(TrackDown td: trackDowns){ + set.add(td.getPid()); + } + long fz = set.size(); + + + returnMap.put("fz",String.valueOf(fz)); + returnMap.put("fm",String.valueOf(fm)); + returnMap.put("rate",fm == 0 ?"--":(Math.round(fz*100/Double.valueOf(fm))+"%")); + System.out.println(fz+"========"+fm); + return returnMap; + + } +} diff --git a/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml b/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml index 5ad5382..3a12468 100644 --- a/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml +++ b/platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml @@ -677,7 +677,7 @@ - +