Commit 70764090923dc51a78247ad04f9fd6d1ba6cda65

Authored by liquanyu
1 parent 4b3a360408
Exists in master and in 1 other branch dev

体重修改

Showing 11 changed files with 587 additions and 18 deletions

platform-dal/src/main/java/com/lyms/platform/pojo/BabyAfterVisitInfoModel.java View file @ 7076409
... ... @@ -153,6 +153,43 @@
153 153 */
154 154 private Date latelyDate;
155 155  
  156 + private String provinceId;
  157 + private String cityId;
  158 + private String areaId;
  159 + private String streetId;
  160 +
  161 + public String getProvinceId() {
  162 + return provinceId;
  163 + }
  164 +
  165 + public void setProvinceId(String provinceId) {
  166 + this.provinceId = provinceId;
  167 + }
  168 +
  169 + public String getCityId() {
  170 + return cityId;
  171 + }
  172 +
  173 + public void setCityId(String cityId) {
  174 + this.cityId = cityId;
  175 + }
  176 +
  177 + public String getAreaId() {
  178 + return areaId;
  179 + }
  180 +
  181 + public void setAreaId(String areaId) {
  182 + this.areaId = areaId;
  183 + }
  184 +
  185 + public String getStreetId() {
  186 + return streetId;
  187 + }
  188 +
  189 + public void setStreetId(String streetId) {
  190 + this.streetId = streetId;
  191 + }
  192 +
156 193 public Date getLatelyDate() {
157 194 return latelyDate;
158 195 }
platform-dal/src/main/java/com/lyms/platform/pojo/BabyAfterVisitStatisticsModel.java View file @ 7076409
... ... @@ -104,6 +104,46 @@
104 104 */
105 105 private String afterVisitWorkflowStatus;
106 106  
  107 +
  108 + //居住地
  109 + private String provinceId;
  110 +
  111 + private String cityId;
  112 + private String areaId;
  113 + private String streetId;
  114 +
  115 + public String getProvinceId() {
  116 + return provinceId;
  117 + }
  118 +
  119 + public void setProvinceId(String provinceId) {
  120 + this.provinceId = provinceId;
  121 + }
  122 +
  123 + public String getCityId() {
  124 + return cityId;
  125 + }
  126 +
  127 + public void setCityId(String cityId) {
  128 + this.cityId = cityId;
  129 + }
  130 +
  131 + public String getAreaId() {
  132 + return areaId;
  133 + }
  134 +
  135 + public void setAreaId(String areaId) {
  136 + this.areaId = areaId;
  137 + }
  138 +
  139 + public String getStreetId() {
  140 + return streetId;
  141 + }
  142 +
  143 + public void setStreetId(String streetId) {
  144 + this.streetId = streetId;
  145 + }
  146 +
107 147 public String getAfterVisitWorkflowStatus() {
108 148 return afterVisitWorkflowStatus;
109 149 }
platform-operate-api/src/main/java/com/lyms/hospitalapi/qhdfy/QhdfyHisService.java View file @ 7076409
... ... @@ -2,6 +2,7 @@
2 2  
3 3 import com.lyms.hospitalapi.pojo.*;
4 4 import com.lyms.hospitalapi.v2.XinlePregPatientinfo;
  5 +import com.lyms.platform.beans.MsgRequest;
5 6 import com.lyms.platform.biz.dal.AssayConfigDao;
6 7 import com.lyms.platform.biz.param.AssayConfigQuery;
7 8 import com.lyms.platform.biz.param.ReferConfigQuery;
8 9  
... ... @@ -10,12 +11,13 @@
10 11 import com.lyms.platform.common.constants.ErrorCodeConstants;
11 12 import com.lyms.platform.common.dao.operator.MongoCondition;
12 13 import com.lyms.platform.common.dao.operator.MongoOper;
13   -import com.lyms.platform.common.enums.YnEnums;
  14 +import com.lyms.platform.common.enums.*;
14 15 import com.lyms.platform.common.result.BaseListResponse;
15 16 import com.lyms.platform.common.utils.DateUtil;
16 17 import com.lyms.platform.common.utils.ExceptionUtils;
17 18 import com.lyms.platform.common.utils.JsonUtil;
18 19 import com.lyms.platform.operate.web.facade.AntenatalExaminationFacade;
  20 +import com.lyms.platform.operate.web.facade.SmsConfigFacade;
19 21 import com.lyms.platform.operate.web.request.BasePageQueryRequest;
20 22 import com.lyms.platform.permission.model.BabyDiagnoseQuery;
21 23 import com.lyms.platform.permission.model.LisReportItemModel;
... ... @@ -25,6 +27,7 @@
25 27 import com.lyms.platform.query.LisReportQuery;
26 28 import com.lyms.platform.query.PatientsQuery;
27 29  
  30 +import com.lyms.platform.query.SmsConfigQuery;
28 31 import org.apache.commons.collections.CollectionUtils;
29 32 import org.apache.commons.dbutils.DbUtils;
30 33 import org.apache.commons.dbutils.QueryRunner;
... ... @@ -33,6 +36,9 @@
33 36 import org.apache.commons.lang.StringUtils;
34 37 import org.joda.time.DateTime;
35 38 import org.springframework.beans.factory.annotation.Autowired;
  39 +import org.springframework.data.mongodb.core.MongoTemplate;
  40 +import org.springframework.data.mongodb.core.query.Criteria;
  41 +import org.springframework.data.mongodb.core.query.Query;
36 42 import org.springframework.stereotype.Service;
37 43  
38 44 import java.io.File;
... ... @@ -47,6 +53,11 @@
47 53 @Service("qhdfyHisService")
48 54 public class QhdfyHisService {
49 55  
  56 + //血红蛋白70~99g/L
  57 + private static final String MSG1="提示:您好,您在产检过程中,检验报告提示血红蛋白为datag/L,属于中度贫血,为避免对您和您的宝宝带来不好的结局,请收到消息后尽快到产科门诊105室就诊。";
  58 + private static final String MSG2="提示:您好,您在产检过程中,检验报告提示血红蛋白为datag/L,属于重度贫血,为避免对您和您的宝宝带来不好的结局,请收到消息后尽快到产科门诊105室就诊。";
  59 + private static final String MSG3="提示:您好,您在产检过程中,检验报告提示血红蛋白为datag/L,属于极重度贫血,为避免对您和您的宝宝带来不好的结局,请收到消息后尽快到产科门诊105室就诊。";
  60 +
50 61 @Autowired
51 62 private PatientsService patientsService;
52 63  
53 64  
54 65  
... ... @@ -68,9 +79,15 @@
68 79 @Autowired
69 80 private AntenatalExaminationFacade antenatalExaminationFacade;
70 81  
  82 +
71 83 @Autowired
72   - private BabyDiagnoseService babyDiagnoseService;
  84 + private SmsConfigService smsConfigService;
  85 + @Autowired
  86 + private SmsConfigFacade smsConfigFacade;
73 87  
  88 +
  89 +
  90 +
74 91 public void syncLisReportTimer() {
75 92 Date date = new Date();
76 93 queryLisReport(new Date(date.getTime() - 1000 * 60 * 60));
... ... @@ -115,8 +132,7 @@
115 132  
116 133  
117 134 String startDateStr = DateUtil.getyyyy_MM_dd_hms(startDate);
118   - String sql = "select top 100000 shenqinghao as hospitalId,bingrenid as patientFid,zhuyuanhao as patientHid,kahao as vcCardNo,phone,huanzhexingming as name,xingbie as sex,nianling as age,shenqingkeshidaima as deptCode,shenqingkeshimingcheng as deptName,shenqingyishengdaima as applyDoctorCode,shenqingyishengmingcheng as applyDoctorName,jianchayishengdaima as checkDoctorCode,jianchayishengxingming as checkDoctorName,baogaofabushijian as publishTime from valllist_ex_en where baogaofabushijian > CONVERT(DATETIME,'" + startDateStr + "', 20) and phone is not null and phone !='' " +
119   - " and shenqinghao is not null and shenqingkeshidaima in ('2320', '2321', '2322', '2323', '2324', '2325', '2326', '2327', '2328', '2329', '2310', '2540', '2541', '2544', '2555', '2558', '2559', '2560') order by shenqinghao desc";
  135 + String sql = "select * from (select top 100000 shenqinghao as hospitalId,bingrenid as patientFid,zhuyuanhao as patientHid,kahao as vcCardNo,phone,huanzhexingming as name,xingbie as sex,nianling as age,shenqingkeshidaima as deptCode,shenqingkeshimingcheng as deptName,shenqingyishengdaima as applyDoctorCode,shenqingyishengmingcheng as applyDoctorName,jianchayishengdaima as checkDoctorCode,jianchayishengxingming as checkDoctorName,baogaofabushijian as publishTime from valllist_ex_en where baogaofabushijian > CONVERT(DATETIME,'" + startDateStr + "', 20) and (shenqingkeshidaima = '2320' or shenqingkeshidaima = '2321' or shenqingkeshidaima = '2322' or shenqingkeshidaima = '2323' or shenqingkeshidaima = '2324' or shenqingkeshidaima = '2325' or shenqingkeshidaima = '2326' or shenqingkeshidaima = '2327' or shenqingkeshidaima = '2328' or shenqingkeshidaima = '2329' or shenqingkeshidaima = '2310' or shenqingkeshidaima = '2540' or shenqingkeshidaima = '2541' or shenqingkeshidaima = '2544' or shenqingkeshidaima = '2555' or shenqingkeshidaima = '2558' or shenqingkeshidaima = '2559' or shenqingkeshidaima = '2560' ) order by shenqinghao desc)temp where temp.phone is not null and temp.phone !=''";
120 136 String subSql = "select top 1000 sheqingdanhao as id,xiangmudaima as code,xiangmumingcheng as name,xiangmujieguo as result,zifujieguo as charResult,shuzijieguo as numberResult,gaodibiaozhi as flag,cankaozhi as ref,danwei as unit,jieguoleixing as result from valresult_ex_en where sheqingdanhao='";
121 137 List<LisReport> list = queryRunner.query(conn, sql, new BeanListHandler<LisReport>(LisReport.class));
122 138 System.out.println("危急值====> " + list.size());
... ... @@ -130,6 +146,11 @@
130 146 assayConfigMap.put(config.getProjectCode(), config);
131 147 }
132 148 for (LisReport report : list) {
  149 + if (StringUtils.isEmpty(report.getPhone()))
  150 + {
  151 + continue;
  152 + }
  153 +
133 154 patientsQuery.setPhone(report.getPhone().trim());
134 155 int count = patientsService.queryPatientCount(patientsQuery);
135 156 LisReportQuery lisReportQuery = new LisReportQuery();
136 157  
... ... @@ -168,9 +189,7 @@
168 189 crisisItem.setSyncStatus(0);
169 190  
170 191 List<LisReportItem> itemList = queryRunner.query(conn, subSql + report.getHospitalId() + "'", new BeanListHandler<LisReportItem>(LisReportItem.class));
171   - //System.out.println("itemList ====> " + itemList.size());
172 192 if (itemList.size() > 0) {
173   - //System.out.println("3====> " + reportCount);
174 193 report.setId(hospitalId + "_" + report.getHospitalId());
175 194 report.setItemList(itemList);
176 195 report.setHospitalId(hospitalId + "");
... ... @@ -202,6 +221,39 @@
202 221 e.printStackTrace();
203 222 }
204 223 }
  224 +
  225 + //血红蛋白判断发生推送或者短信消息
  226 + /**
  227 + *
  228 + ①血红蛋白70~99g/L,短信如下:
  229 + 提示:您好,您在产检过程中,检验报告提示血红蛋白为**g/L,属于中度贫血,为避免对您和您的宝宝带来不好的结局,请收到消息后尽快到产科门诊105室就诊。
  230 + ②血红蛋白40~69g/L,短信如下:
  231 + 提示:您好,您在产检过程中,检验报告提示血红蛋白为**g/L,属于重度贫血,为避免对您和您的宝宝带来不好的结局,请收到消息后尽快到产科门诊105室就诊。
  232 + ③血红蛋白小于40g/L,短信如下:
  233 + 提示:您好,您在产检过程中,检验报告提示血红蛋白为**g/L,属于极重度贫血,为避免对您和您的宝宝带来不好的结局,请收到消息后尽快到产科门诊105室就诊。
  234 + */
  235 + if (item.getCode() != null && StringUtils.isNotEmpty(item.getCode().trim()) &&
  236 + "HGB".equals(item.getCode().trim()))
  237 + {
  238 + String msg = "";
  239 + if (Double.valueOf(crisisItem.getResult()) < 40)
  240 + {
  241 + msg = MSG3.replace("data",crisisItem.getResult());
  242 + }else if (Double.valueOf(crisisItem.getResult()) <= 69 && Double.valueOf(crisisItem.getResult()) >= 40)
  243 + {
  244 + msg = MSG2.replace("data",crisisItem.getResult());
  245 + }
  246 + else if (Double.valueOf(crisisItem.getResult()) <= 99 && Double.valueOf(crisisItem.getResult()) >= 70)
  247 + {
  248 + msg = MSG1.replace("data",crisisItem.getResult());
  249 + }
  250 + if (StringUtils.isNotEmpty(msg))
  251 + {
  252 + System.out.println("generateWjMsg phone="+patients.getPhone()+"xhdb="+item.getCode().trim());
  253 + generateWjMsg(patients, msg);
  254 + }
  255 + }
  256 +
205 257 if (flag) {
206 258 crisisItem.setId(report.getId() + "_" + item.getCode());
207 259 AssayConfig assayConfig = assayConfigMap.get(item.getCode());
... ... @@ -251,6 +303,64 @@
251 303 }
252 304 System.out.print("end queryLisReport" + DateUtil.getyyyy_MM_dd_hms(new Date()));
253 305 return result;
  306 + }
  307 +
  308 + /**
  309 + * 创建危急值推送
  310 + */
  311 + public void generateWjMsg(Patients patients,String msg) {
  312 +
  313 + SmsConfigQuery configQuery = new SmsConfigQuery();
  314 + configQuery.setYn(YnEnums.YES.getId());
  315 + configQuery.setPrefixTypes(new Integer[]{0, 1});
  316 + configQuery.setHospitalId("216");
  317 + //查询出对应医院配置
  318 + List<SmsConfigModel> smsConfigModels = smsConfigService.querySmsConfig(configQuery);
  319 + if (com.lyms.platform.operate.web.utils.CollectionUtils.isNotEmpty(smsConfigModels))
  320 + {
  321 + for (SmsConfigModel configModel : smsConfigModels)
  322 + {
  323 + // 1 推送服务, 2 推送和短信服务 3短信服务,
  324 + int startType = smsConfigFacade.hospitalIsStart(configModel.getHospitalId(), configModel, SmsServiceEnums.PXTX.getId());
  325 + if (startType == 0) {
  326 + continue;
  327 + }
  328 + //短信前缀
  329 + String messagePrefix = smsConfigFacade.getMsgPrefix(configModel, patients.getBookbuildingDoctor(), ServiceObjEnums.YUNOBJ.getId());
  330 +
  331 + List<MsgRequest> messages = new ArrayList<>();
  332 + MsgRequest mr = new MsgRequest();
  333 +
  334 + String content = "【" + messagePrefix + "】" + msg;
  335 +
  336 + mr.setFirst(content);
  337 + mr.setObjType(ServiceObjEnums.YUNOBJ.getId());
  338 + mr.setPhone(patients.getPhone());
  339 + mr.setTypeId(ProjectTypeEnums.YNXT.getId());
  340 + mr.setPlanTime(DateUtil.getyyyy_MM_dd(new Date()));
  341 + mr.setSubTypeId(SmsServiceEnums.PXTX.getId());
  342 + mr.setStatus(SmsStatusEnums.WFS.getId());
  343 + mr.setTimeType(SmsTimeTypeEnums.ONTIME.getId());
  344 +
  345 + mr.setHospitalId(patients.getHospitalId());
  346 + mr.setTempId(patients.getId());
  347 + mr.setPatientId(patients.getId());
  348 +
  349 + mr.setKeyword1("产科医生");
  350 + mr.setKeyword2(DateUtil.getyyyy_MM_dd(new Date()));
  351 + mr.setRemark("");
  352 + mr.setCreated(DateUtil.getyyyy_MM_dd_hms(new Date()));
  353 + mr.setSmsStatus(SmsStatusEnums.WFS.getId());
  354 + mr.setServiceType(startType);
  355 +
  356 + mr.setWxTempId(WxTempleteIdEnums.YUN_XUE_KE_CHEN_TX.getId());
  357 + messages.add(mr);
  358 + ExceptionUtils.catchException("generateWjMsg msg = " + mr);
  359 + if (com.lyms.platform.operate.web.utils.CollectionUtils.isNotEmpty(messages)) {
  360 + smsConfigFacade.saveMsg(messages, patients.getHospitalId());
  361 + }
  362 + }
  363 + }
254 364 }
255 365  
256 366 private String buildRef(ReferValue referValue) {
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/TestController.java View file @ 7076409
... ... @@ -26,6 +26,7 @@
26 26 import com.lyms.platform.operate.web.result.MaternalDeliverResult;
27 27 import com.lyms.platform.operate.web.service.BabyEyeCheckService;
28 28 import com.lyms.platform.operate.web.service.IBloodPressureService;
  29 +import com.lyms.platform.operate.web.service.PatientWeightService;
29 30 import com.lyms.platform.operate.web.service.SyncDataTaskService;
30 31 import com.lyms.platform.operate.web.worker.*;
31 32 import com.lyms.platform.permission.model.*;
32 33  
33 34  
... ... @@ -133,10 +134,11 @@
133 134  
134 135 @Autowired
135 136 private PersonService personService;
136   - @Autowired
137   - private BabySieveFacede babySieveFacede;
138 137  
  138 +
139 139 @Autowired
  140 + private PatientWeightService2 patientWeightService2;
  141 + @Autowired
140 142 @Qualifier("commonThreadPool")
141 143 private ThreadPoolTaskExecutor commonThreadPool;
142 144 @Autowired
... ... @@ -3833,5 +3835,173 @@
3833 3835 return "updateFmPostAddress start......";
3834 3836 }
3835 3837  
  3838 +
  3839 +
  3840 + @ResponseBody
  3841 + @RequestMapping(value = "/updateWeightIsNormal", method = RequestMethod.GET)
  3842 + public String updateWeightIsNormal(@RequestParam(required = false) String hospitalId, String startDate, String endDate) {
  3843 + List<PatientWeight> patientWeights = mongoTemplate.find(Query.query(Criteria.where("yn").
  3844 + is("1")), PatientWeight.class);
  3845 +
  3846 + System.out.println("本次读取了【" + patientWeights.size() + "】条数据");
  3847 + int batchSize = 1000;
  3848 + int end = 0;
  3849 + for (int i = 0; i < patientWeights.size(); i += batchSize) {
  3850 + end = (end + batchSize);
  3851 + if (end > patientWeights.size()) {
  3852 + end = patientWeights.size();
  3853 + }
  3854 + final List<PatientWeight> tempList = patientWeights.subList(i, end);
  3855 + commonThreadPool.execute(new Runnable() {
  3856 + @Override
  3857 + public void run() {
  3858 + if (CollectionUtils.isNotEmpty(tempList)) {
  3859 + for (PatientWeight weight : tempList) {
  3860 + try {
  3861 + if (weight != null && StringUtils.isNotEmpty(weight.getPatientId()))
  3862 + {
  3863 + Patients patients = patientsService.findOnePatientById(weight.getPatientId());
  3864 + if (patients != null)
  3865 + {
  3866 + String isNormal = patientWeightService.getWeightRangeIsNormal(patients,weight);
  3867 + weight.setIsNormal(isNormal);
  3868 + patientWeightService2.update(Query.query(Criteria.where("id").is(weight.getId())), weight);
  3869 + }
  3870 + }
  3871 + }catch (Exception e)
  3872 + {
  3873 + continue;
  3874 + }
  3875 + }
  3876 + }
  3877 + }
  3878 + });
  3879 + }
  3880 + return "updateWeightIsNormal start......";
  3881 + }
  3882 +
  3883 +
  3884 +
  3885 + @ResponseBody
  3886 + @RequestMapping(value = "/updateBabyAfterVisitStatisticsModel", method = RequestMethod.GET)
  3887 + public String updateBabyAfterVisitStatisticsModel(@RequestParam(required = false) String hospitalId) {
  3888 + OrganizationQuery organizationQuery = new OrganizationQuery();
  3889 + organizationQuery.setYn(YnEnums.YES.getId());
  3890 + if (StringUtils.isNotEmpty(hospitalId)) {
  3891 + organizationQuery.setId(Integer.parseInt(hospitalId));
  3892 + }
  3893 + List<Organization> organizationList = organizationService.queryOrganization(organizationQuery);
  3894 +
  3895 + for (Organization or : organizationList)
  3896 + {
  3897 + Query query = new Query();
  3898 + query.addCriteria(Criteria.where("hospitalId").is(or.getId().toString()));
  3899 + List<BabyAfterVisitStatisticsModel> statisticsModels = mongoTemplate.find(query, BabyAfterVisitStatisticsModel.class);
  3900 +
  3901 + System.out.println("本次读取了【" + statisticsModels.size() + "】条数据");
  3902 + int batchSize = 500;
  3903 + int end = 0;
  3904 + for (int i = 0; i < statisticsModels.size(); i += batchSize) {
  3905 + end = (end + batchSize);
  3906 + if (end > statisticsModels.size()) {
  3907 + end = statisticsModels.size();
  3908 + }
  3909 + final List<BabyAfterVisitStatisticsModel> tempList = statisticsModels.subList(i, end);
  3910 + commonThreadPool.execute(new Runnable() {
  3911 + @Override
  3912 + public void run() {
  3913 + if (CollectionUtils.isNotEmpty(tempList)) {
  3914 + for (BabyAfterVisitStatisticsModel model : tempList) {
  3915 + try {
  3916 + if (model != null && StringUtils.isNotEmpty(model.getBabyId()))
  3917 + {
  3918 + BabyModel babyModel = babyBookbuildingService.queryBabyBuildById(model.getBabyId());
  3919 + if (babyModel != null && StringUtils.isNotEmpty(babyModel.getProvinceId()) &&
  3920 + StringUtils.isNotEmpty(babyModel.getCityId()) && StringUtils.isNotEmpty(babyModel.getAreaId()))
  3921 + {
  3922 + model.setProvinceId(babyModel.getProvinceId());
  3923 + model.setCityId(babyModel.getCityId());
  3924 + model.setAreaId(babyModel.getAreaId());
  3925 + model.setStreetId(babyModel.getStreetId());
  3926 + Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(model));
  3927 + mongoTemplate.updateFirst(Query.query(Criteria.where("_id").is(model.getId())), update, BabyAfterVisitStatisticsModel.class);
  3928 + }
  3929 + }
  3930 + }catch (Exception e)
  3931 + {
  3932 + continue;
  3933 + }
  3934 + }
  3935 + }
  3936 + }
  3937 + });
  3938 + }
  3939 + }
  3940 + return "updateBabyAfterVisitStatisticsModel start......";
  3941 + }
  3942 +
  3943 +
  3944 +
  3945 + @ResponseBody
  3946 + @RequestMapping(value = "/updateBabyAfterVisitInfoModel", method = RequestMethod.GET)
  3947 + public String updateBabyAfterVisitInfoModel(@RequestParam(required = false) String hospitalId) {
  3948 + OrganizationQuery organizationQuery = new OrganizationQuery();
  3949 + organizationQuery.setYn(YnEnums.YES.getId());
  3950 + if (StringUtils.isNotEmpty(hospitalId)) {
  3951 + organizationQuery.setId(Integer.parseInt(hospitalId));
  3952 + }
  3953 + List<Organization> organizationList = organizationService.queryOrganization(organizationQuery);
  3954 +
  3955 + for (Organization or : organizationList)
  3956 + {
  3957 + Query query = new Query();
  3958 + query.addCriteria(Criteria.where("hospitalId").is(or.getId().toString()));
  3959 + List<BabyAfterVisitInfoModel> statisticsModels = mongoTemplate.find(query, BabyAfterVisitInfoModel.class);
  3960 +
  3961 + System.out.println("本次读取了【" + statisticsModels.size() + "】条数据");
  3962 + int batchSize = 500;
  3963 + int end = 0;
  3964 + for (int i = 0; i < statisticsModels.size(); i += batchSize) {
  3965 + end = (end + batchSize);
  3966 + if (end > statisticsModels.size()) {
  3967 + end = statisticsModels.size();
  3968 + }
  3969 + final List<BabyAfterVisitInfoModel> tempList = statisticsModels.subList(i, end);
  3970 + commonThreadPool.execute(new Runnable() {
  3971 + @Override
  3972 + public void run() {
  3973 + if (CollectionUtils.isNotEmpty(tempList)) {
  3974 + for (BabyAfterVisitInfoModel model : tempList) {
  3975 + try {
  3976 + if (model != null && StringUtils.isNotEmpty(model.getBabyId()))
  3977 + {
  3978 + BabyModel babyModel = babyBookbuildingService.queryBabyBuildById(model.getBabyId());
  3979 + if (babyModel != null && StringUtils.isNotEmpty(babyModel.getProvinceId()) &&
  3980 + StringUtils.isNotEmpty(babyModel.getCityId()) && StringUtils.isNotEmpty(babyModel.getAreaId()))
  3981 + {
  3982 + model.setProvinceId(babyModel.getProvinceId());
  3983 + model.setCityId(babyModel.getCityId());
  3984 + model.setAreaId(babyModel.getAreaId());
  3985 + model.setStreetId(babyModel.getStreetId());
  3986 + Update update = MongoConvertHelper.convertToNativeUpdate(ReflectionUtils.getUpdateField(model));
  3987 + mongoTemplate.updateFirst(Query.query(Criteria.where("_id").is(model.getId())), update, BabyAfterVisitInfoModel.class);
  3988 + }
  3989 + }
  3990 + }catch (Exception e)
  3991 + {
  3992 + continue;
  3993 + }
  3994 + }
  3995 + }
  3996 + }
  3997 + });
  3998 + }
  3999 + }
  4000 + return "BabyAfterVisitInfoModel start......";
  4001 + }
  4002 +
  4003 +
  4004 + @Autowired
  4005 + private PatientWeightService patientWeightService;
3836 4006 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyAfterVisitBuildListRequest.java View file @ 7076409
... ... @@ -103,6 +103,55 @@
103 103 */
104 104 private String isEncrypt = "2";
105 105  
  106 +
  107 + private String provinceId;
  108 +
  109 + private String cityId;
  110 + private String areaId;
  111 + private String streetId;
  112 + private boolean isArea;
  113 +
  114 +
  115 + public String getProvinceId() {
  116 + return provinceId;
  117 + }
  118 +
  119 + public void setProvinceId(String provinceId) {
  120 + this.provinceId = provinceId;
  121 + }
  122 +
  123 + public String getCityId() {
  124 + return cityId;
  125 + }
  126 +
  127 + public void setCityId(String cityId) {
  128 + this.cityId = cityId;
  129 + }
  130 +
  131 + public String getAreaId() {
  132 + return areaId;
  133 + }
  134 +
  135 + public void setAreaId(String areaId) {
  136 + this.areaId = areaId;
  137 + }
  138 +
  139 + public String getStreetId() {
  140 + return streetId;
  141 + }
  142 +
  143 + public void setStreetId(String streetId) {
  144 + this.streetId = streetId;
  145 + }
  146 +
  147 + public boolean isArea() {
  148 + return isArea;
  149 + }
  150 +
  151 + public void setIsArea(boolean isArea) {
  152 + this.isArea = isArea;
  153 + }
  154 +
106 155 public Integer getEndBeyondDay() {
107 156 return endBeyondDay;
108 157 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyAfterVisitRequest.java View file @ 7076409
... ... @@ -63,6 +63,53 @@
63 63 */
64 64 private String isEncrypt = "2";
65 65  
  66 + private String provinceId;
  67 +
  68 + private String cityId;
  69 + private String areaId;
  70 + private String streetId;
  71 + private boolean isArea;
  72 +
  73 + public boolean isArea() {
  74 + return isArea;
  75 + }
  76 +
  77 + public void setIsArea(boolean isArea) {
  78 + this.isArea = isArea;
  79 + }
  80 +
  81 + public String getProvinceId() {
  82 + return provinceId;
  83 + }
  84 +
  85 + public void setProvinceId(String provinceId) {
  86 + this.provinceId = provinceId;
  87 + }
  88 +
  89 + public String getCityId() {
  90 + return cityId;
  91 + }
  92 +
  93 + public void setCityId(String cityId) {
  94 + this.cityId = cityId;
  95 + }
  96 +
  97 + public String getAreaId() {
  98 + return areaId;
  99 + }
  100 +
  101 + public void setAreaId(String areaId) {
  102 + this.areaId = areaId;
  103 + }
  104 +
  105 + public String getStreetId() {
  106 + return streetId;
  107 + }
  108 +
  109 + public void setStreetId(String streetId) {
  110 + this.streetId = streetId;
  111 + }
  112 +
66 113 public String getIsEncrypt() {
67 114 return isEncrypt;
68 115 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/PatientWeightService.java View file @ 7076409
... ... @@ -76,5 +76,8 @@
76 76 void generateWeightMsg();
77 77  
78 78  
  79 + public String getWeightRangeIsNormal(Patients patients,PatientWeight pw);
  80 +
  81 +
79 82 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java View file @ 7076409
... ... @@ -56,7 +56,7 @@
56 56 // urls.put("area-nc-api.healthbaby.com.cn:12356","南充");
57 57 //urls.put("area-laoling-api.healthbaby.com.cn:12356","乐陵");
58 58 urls.put("area-zhuchengrenmin-api.healthbaby.com.cn:12356","诸城人民医院");
59   -// urls.put("area-hengshui-api.healthbaby.com.cn:8787","衡水区域");
  59 + urls.put("area-hengshui-api.healthbaby.com.cn:8787","衡水区域");
60 60 urls.put("area-rongcheng-api.healthbaby.com.cn:12356","荣成");
61 61 urls.put("area-zhucheng-api.healthbaby.com.cn:12356","诸城市妇幼保健院");
62 62 urls.put("area-weihai-api.healthbaby.com.cn:12356","威海市妇幼");
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/BabyAfterVisitServiceImpl.java View file @ 7076409
... ... @@ -2,6 +2,7 @@
2 2  
3 3 import com.google.common.util.concurrent.ThreadFactoryBuilder;
4 4 import com.lyms.platform.biz.service.BabyBookbuildingService;
  5 +import com.lyms.platform.biz.service.DataPermissionService;
5 6 import com.lyms.platform.common.constants.ErrorCodeConstants;
6 7 import com.lyms.platform.common.enums.SexEnum;
7 8 import com.lyms.platform.common.enums.TrackDownTransferEnums;
... ... @@ -25,6 +26,7 @@
25 26 import com.lyms.platform.permission.dao.master.MasterUsersMapper;
26 27 import com.lyms.platform.permission.model.Users;
27 28 import com.lyms.platform.pojo.*;
  29 +import com.lyms.platform.query.DataPermissionsModelQuery;
28 30 import org.springframework.beans.factory.annotation.Autowired;
29 31 import org.springframework.data.domain.Sort;
30 32 import org.springframework.data.mongodb.core.MongoTemplate;
... ... @@ -61,6 +63,9 @@
61 63 @Autowired
62 64 private BabyBookbuildingService babyBookbuildingService;
63 65  
  66 + @Autowired
  67 + private DataPermissionService dataPermissionService;
  68 +
64 69 /**
65 70 * 追访管理 - 追访列表
66 71 *
67 72  
... ... @@ -72,8 +77,50 @@
72 77 String querNo = request.getQueryNo();
73 78 Query query = new Query();
74 79 String hospitalId = autoMatchFacade.getHospitalId(userId);
75   - query.addCriteria(Criteria.where("hospitalId").is(hospitalId).and("yn").is(1).and("afterVisitWorkflowStatus").is("1"));
76 80  
  81 + String provinceId = request.getProvinceId();
  82 + if (StringUtils.isNotEmpty(provinceId)) {
  83 + query.addCriteria(Criteria.where("provinceId").is(provinceId));
  84 + String cityId = request.getCityId();
  85 + if (StringUtils.isNotEmpty(cityId)) {
  86 + query.addCriteria(Criteria.where("cityId").is(cityId));
  87 + String areaId = request.getAreaId();
  88 + if (StringUtils.isNotEmpty(cityId)) {
  89 + query.addCriteria(Criteria.where("areaId").is(areaId));
  90 + String streetId = request.getStreetId();
  91 + if (StringUtils.isNotEmpty(streetId)) {
  92 + query.addCriteria(Criteria.where("streetId").is(streetId));
  93 + }
  94 + }
  95 + }
  96 + }
  97 + if (request.isArea())
  98 + {
  99 + //权限所有的医院
  100 + List<String> allHospitalList = new ArrayList<>();
  101 + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery();
  102 + dataPermissionsModelQuery.setUserId(userId);
  103 + List<DataPermissionsModel> permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery);
  104 + if (org.apache.commons.collections.CollectionUtils.isNotEmpty(permissionsModels)) {
  105 + Set<String> set = permissionsModels.get(0).getData().keySet();
  106 + Iterator<String> it = set.iterator();
  107 + while (it.hasNext()) {
  108 + String id = it.next();
  109 + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(id)) {
  110 + allHospitalList.add(id);
  111 + }
  112 + }
  113 + }
  114 + allHospitalList.add(hospitalId);
  115 + query.addCriteria(Criteria.where("hospitalId").in(allHospitalList));
  116 + }
  117 + else
  118 + {
  119 + query.addCriteria(Criteria.where("hospitalId").is(hospitalId));
  120 + }
  121 +
  122 + query.addCriteria(Criteria.where("yn").is(1).and("afterVisitWorkflowStatus").is("1"));
  123 +
77 124 // 查询号 姓名、证件号、手机号
78 125 if (StringUtils.isNotEmpty(querNo)) {
79 126 query.addCriteria(new Criteria().orOperator(Criteria.where("name").is(querNo),
... ... @@ -222,7 +269,51 @@
222 269 String type = request.getType();
223 270 Query query = new Query();
224 271 String hospitalId = autoMatchFacade.getHospitalId(userId);
225   - query.addCriteria(Criteria.where("hospitalId").is(hospitalId));
  272 +
  273 + String provinceId = request.getProvinceId();
  274 + if (StringUtils.isNotEmpty(provinceId)) {
  275 + query.addCriteria(Criteria.where("provinceId").is(provinceId));
  276 + String cityId = request.getCityId();
  277 + if (StringUtils.isNotEmpty(cityId)) {
  278 + query.addCriteria(Criteria.where("cityId").is(cityId));
  279 + String areaId = request.getAreaId();
  280 + if (StringUtils.isNotEmpty(cityId)) {
  281 + query.addCriteria(Criteria.where("areaId").is(areaId));
  282 + String streetId = request.getStreetId();
  283 + if (StringUtils.isNotEmpty(streetId)) {
  284 + query.addCriteria(Criteria.where("streetId").is(streetId));
  285 + }
  286 + }
  287 + }
  288 + }
  289 +
  290 +
  291 + if (request.isArea())
  292 + {
  293 + //权限所有的医院
  294 + List<String> allHospitalList = new ArrayList<>();
  295 + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery();
  296 + dataPermissionsModelQuery.setUserId(userId);
  297 + List<DataPermissionsModel> permissionsModels = dataPermissionService.queryPermission(dataPermissionsModelQuery);
  298 + if (org.apache.commons.collections.CollectionUtils.isNotEmpty(permissionsModels)) {
  299 + Set<String> set = permissionsModels.get(0).getData().keySet();
  300 + Iterator<String> it = set.iterator();
  301 + while (it.hasNext()) {
  302 + String id = it.next();
  303 + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(id)) {
  304 + allHospitalList.add(id);
  305 + }
  306 + }
  307 + }
  308 + allHospitalList.add(hospitalId);
  309 + query.addCriteria(Criteria.where("hospitalId").in(allHospitalList));
  310 + }
  311 + else
  312 + {
  313 + query.addCriteria(Criteria.where("hospitalId").is(hospitalId));
  314 + }
  315 +
  316 +
226 317 if (StringUtils.isEmpty(type)) {
227 318 return new BaseResponse("参数缺失", ErrorCodeConstants.PARAMETER_ERROR);
228 319 }
platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PatientWeightServiceImpl.java View file @ 7076409
... ... @@ -187,8 +187,8 @@
187 187 pw.setNowWeight(patientWeight.getNowWeight());
188 188  
189 189  
190   - String isNormal = getWeightRangeIsNormal(patients,pw);
191 190  
  191 +
192 192 String ymdDate = DateUtil.getyyyy_MM_dd(new Date());
193 193 boolean flag = true;
194 194 if (CollectionUtils.isNotEmpty(pw.getDayWeights2())) {
... ... @@ -216,7 +216,7 @@
216 216 }
217 217 pw.setDayWeights2(dayWeights2);
218 218 pw.setModified(new Date());
219   - pw.setIsNormal(isNormal);
  219 + pw.setIsNormal(getWeightRangeIsNormal(patients,pw));
220 220 patientWeightService2.update(Query.query(Criteria.where("id").is(pw.getId())), pw);
221 221 return RespBuilder.buildSuccess(pw.getId());
222 222 }
223 223  
... ... @@ -245,8 +245,8 @@
245 245 /*m.put("doctorId", doctorId);*/
246 246 dayWeights2.add(m);
247 247 patientWeight.setDayWeights2(dayWeights2);
248   - pw.setIsNormal(getWeightRangeIsNormal(patients,patientWeight));
249 248 patientWeight.setModified(new Date());
  249 + patientWeight.setIsNormal(getWeightRangeIsNormal(patients, patientWeight));
250 250 patientWeightService2.add(patientWeight);
251 251  
252 252 operateLogFacade.addAddOptLog(userId, Integer.valueOf(hospitalId), patientWeight, OptActionEnums.ADD.getId(), "添加孕体重");
... ... @@ -272,7 +272,7 @@
272 272 /**
273 273 * 计算当前测量的体重是否超过上线值
274 274 */
275   - private String getWeightRangeIsNormal(Patients patients,PatientWeight pw) {
  275 + public String getWeightRangeIsNormal(Patients patients,PatientWeight pw) {
276 276  
277 277 Map<String, Object> series = new LinkedHashMap<>();
278 278 String isNormal = "true";
... ... @@ -306,7 +306,7 @@
306 306 getSeries(series, bmiStr, pw.getBregmatic());
307 307 if (series.get("highDataMap") != null)
308 308 {
309   - int week = DateUtil.getWeek(patients.getLastMenses(),new Date());
  309 + int week = DateUtil.getWeek(patients.getLastMenses(),pw.getModified());
310 310 Map<Integer, Double> map = (Map<Integer, Double>)series.get("highDataMap");
311 311 Double d = map.get(week);
312 312 if (d != null && d < Double.parseDouble(pw.getNowWeight()) - Double.parseDouble(pw.getBeforeWeight()))
313 313  
314 314  
315 315  
... ... @@ -336,18 +336,22 @@
336 336 // 1 推送服务, 2 推送和短信服务 3短信服务,
337 337 int startType = smsConfigFacade.hospitalIsStart(configModel.getHospitalId(), configModel, SmsServiceEnums.TZCBTX.getId());
338 338 if (startType == 0) {
339   - return;
  339 + continue;
340 340 }
341 341  
342 342 Date date = DateUtil.addWeek(DateUtil.addDay(new Date(),-1),-4);
343 343 Date start = DateUtil.getDayFirstSecond(date);
344 344 Date end = DateUtil.getDayLastSecond(date);
  345 + System.out.println(DateUtil.getyyyy_MM_dd_hms(start));
  346 + System.out.println(DateUtil.getyyyy_MM_dd_hms(end));
345 347 List<PatientWeight> patientWeights = mongoTemplate.find(Query.query(Criteria.where("isNormal").
346   - is("false").and("lastMenses").gt(start).lte(end)), PatientWeight.class);
  348 + is("false").and("modified").gt(start).lte(end)), PatientWeight.class);
347 349  
348 350 Date date1 = DateUtil.addWeek(DateUtil.addDay(new Date(),-1),-8);
349 351 Date start1 = DateUtil.getDayFirstSecond(date1);
350 352 Date end1 = DateUtil.getDayLastSecond(date1);
  353 + System.out.println(DateUtil.getyyyy_MM_dd_hms(start1));
  354 + System.out.println(DateUtil.getyyyy_MM_dd_hms(end1));
351 355 patientWeights.addAll(mongoTemplate.find(Query.query(Criteria.where("isNormal").
352 356 is("false").and("modified").gt(start1).lte(end1)), PatientWeight.class));
353 357  
platform-operate-api/src/main/resources/spring/applicationContext-quartz.xml View file @ 7076409
... ... @@ -475,6 +475,23 @@
475 475 </bean>
476 476  
477 477  
  478 + <!--生成体重超标推送 -->
  479 + <bean id="handleWeightJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  480 + <!-- 要调用的bean -->
  481 + <property name="targetObject" ref="patientWeightServiceImpl"></property>
  482 + <!-- 要调用的Method -->
  483 + <property name="targetMethod" value="generateWeightMsg"></property>
  484 + <!-- 是否并发,false表示 如果发生错误也不影响下一次的调用 -->
  485 + <property name="concurrent" value="false"></property>
  486 + </bean>
  487 +
  488 + <bean id="genWeightTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
  489 + <property name="jobDetail" ref="handleWeightJob"/>
  490 + <property name="cronExpression" value="0 20 1 * * ? "></property>
  491 + </bean>
  492 +
  493 +
  494 +
478 495 <!-- 总调度,用于启动定时器 -->
479 496 <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
480 497 <property name="triggers" >
... ... @@ -503,6 +520,7 @@
503 520 <ref bean="rcGongWeiTrigger" />
504 521  
505 522 <ref bean="autoGetSieveTrigger" />
  523 + <ref bean="genWeightTrigger" />
506 524  
507 525 <!--陵城孕前优生临床检查自动保存到表
508 526 <ref bean="dzlcTyTrigger" />-->