From 6fe6161eb91097970fd3e7f79f7eeaddbb98d078 Mon Sep 17 00:00:00 2001 From: liquanyu Date: Wed, 10 Jan 2018 02:09:26 +0800 Subject: [PATCH] update code --- .../com/lyms/platform/biz/dal/IMeasureInfoDao.java | 15 ++ .../lyms/platform/biz/dal/impl/MeasureInfoDao.java | 25 +++ .../platform/biz/service/MeasureInfoService.java | 33 ++++ .../com/lyms/platform/pojo/MeasureInfoModel.java | 11 ++ .../com/lyms/platform/query/MeasureInfoQuery.java | 178 ++++++++++++++++++++- .../web/controller/MeasureInfoController.java | 44 +++++ .../operate/web/facade/MeasureInfoFacade.java | 52 ++++++ .../operate/web/service/SyncDataTaskService.java | 66 +++++--- 8 files changed, 397 insertions(+), 27 deletions(-) create mode 100644 platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IMeasureInfoDao.java create mode 100644 platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/MeasureInfoDao.java create mode 100644 platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MeasureInfoService.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MeasureInfoController.java create mode 100644 platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MeasureInfoFacade.java diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IMeasureInfoDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IMeasureInfoDao.java new file mode 100644 index 0000000..b6545ef --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IMeasureInfoDao.java @@ -0,0 +1,15 @@ +package com.lyms.platform.biz.dal; + +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.pojo.MeasureInfoModel; + +import java.util.List; + +/** + * Created by Administrator on 2018-01-10. + */ +public interface IMeasureInfoDao { + List queryMeasureInfoList(MongoQuery query); + + int queryMeasureInfoListCount(MongoQuery mongoQuery); +} diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/MeasureInfoDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/MeasureInfoDao.java new file mode 100644 index 0000000..da20bc7 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/MeasureInfoDao.java @@ -0,0 +1,25 @@ +package com.lyms.platform.biz.dal.impl; + +import com.lyms.platform.biz.dal.IMeasureInfoDao; +import com.lyms.platform.common.dao.BaseMongoDAOImpl; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.pojo.MeasureInfoModel; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * Created by Administrator on 2018-01-10. + */ +@Repository("measureInfoDao") +public class MeasureInfoDao extends BaseMongoDAOImpl implements IMeasureInfoDao { + @Override + public List queryMeasureInfoList(MongoQuery query) { + return find(query.convertToMongoQuery()); + } + + @Override + public int queryMeasureInfoListCount(MongoQuery mongoQuery) { + return (int)count(mongoQuery.convertToMongoQuery()); + } +} diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MeasureInfoService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MeasureInfoService.java new file mode 100644 index 0000000..3b95e8e --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/MeasureInfoService.java @@ -0,0 +1,33 @@ +package com.lyms.platform.biz.service; + +import com.lyms.platform.biz.dal.IMatDeliverDao; +import com.lyms.platform.biz.dal.IMeasureInfoDao; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.pojo.MeasureInfoModel; +import com.lyms.platform.query.MeasureInfoQuery; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * Created by Administrator on 2018-01-10. + */ +@Service +public class MeasureInfoService { + + @Autowired + private IMeasureInfoDao measureInfoDao; + + public List queryMeasureInfoList(MeasureInfoQuery measureInfoQuery) { + + MongoQuery query = measureInfoQuery.convertToQuery(); + if (StringUtils.isNotEmpty(measureInfoQuery.getNeed())) { + measureInfoQuery.mysqlBuild(measureInfoDao.queryMeasureInfoListCount(measureInfoQuery.convertToQuery())); + query.start(measureInfoQuery.getOffset()).end(measureInfoQuery.getLimit()); + } + return measureInfoDao.queryMeasureInfoList(query.addOrder(Sort.Direction.DESC, "created")); + } +} diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/MeasureInfoModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/MeasureInfoModel.java index 8d26fc3..a72126e 100644 --- a/platform-dal/src/main/java/com/lyms/platform/pojo/MeasureInfoModel.java +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/MeasureInfoModel.java @@ -41,6 +41,17 @@ public class MeasureInfoModel { //修改时间 private Date modified; + //医院id + private String hospitalId; + + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + public Integer getId() { return id; } diff --git a/platform-dal/src/main/java/com/lyms/platform/query/MeasureInfoQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/MeasureInfoQuery.java index 8422eb6..ed50811 100644 --- a/platform-dal/src/main/java/com/lyms/platform/query/MeasureInfoQuery.java +++ b/platform-dal/src/main/java/com/lyms/platform/query/MeasureInfoQuery.java @@ -33,6 +33,9 @@ public class MeasureInfoQuery extends BaseQuery implements IConvertToNativeQuery //手机号码 private String phone; + //年龄 + private Integer age; + //脉搏/身高 private String valueTwo; //值类型: 1 身高、体重 2 血压和脉搏 @@ -51,6 +54,9 @@ public class MeasureInfoQuery extends BaseQuery implements IConvertToNativeQuery //修改时间 private Date modified; + private String queryNo; + private String hospitalId; + @Override public MongoQuery convertToQuery() { MongoCondition condition = MongoCondition.newInstance(); @@ -74,6 +80,9 @@ public class MeasureInfoQuery extends BaseQuery implements IConvertToNativeQuery if (null != sex) { condition = condition.and("sex", sex, MongoOper.IS); } + if (null != hospitalId) { + condition = condition.and("hospitalId", hospitalId, MongoOper.IS); + } if (null != vcCardNo) { @@ -92,10 +101,23 @@ public class MeasureInfoQuery extends BaseQuery implements IConvertToNativeQuery if (null != phone) { condition = condition.and("phone", phone, MongoOper.IS); } - - - + if (null != age) { + condition = condition.and("age", age, MongoOper.IS); + } Criteria c1 = null; + if (null != queryNo) { + MongoCondition c = MongoCondition.newInstance(); + MongoCondition con1 = MongoCondition.newInstance("phone", queryNo, MongoOper.IS); + MongoCondition con2 = MongoCondition.newInstance("username", "^" + queryNo, MongoOper.LIKE); + MongoCondition con3 = MongoCondition.newInstance("certNo", certNo, MongoOper.IS); + MongoCondition con4 = MongoCondition.newInstance("vcCardNo", queryNo, MongoOper.IS); + if(c1!=null) { + c1 = c1.andOperator(c.orCondition(new MongoCondition[]{con1, con2, con3, con4}).getCriteria()); + }else { + c1 = c.orCondition(new MongoCondition[]{con1, con2, con3, con4}).getCriteria(); + } + } + if (null != recordTimeStart) { if (null != c1) { c1 = c1.and("recordTime").gte(recordTimeStart); @@ -117,7 +139,157 @@ public class MeasureInfoQuery extends BaseQuery implements IConvertToNativeQuery return condition.toMongoQuery(); } + public String getHospitalId() { + return hospitalId; + } + + public void setHospitalId(String hospitalId) { + this.hospitalId = hospitalId; + } + + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getCertType() { + return certType; + } + + public void setCertType(String certType) { + this.certType = certType; + } + + public String getCertNo() { + return certNo; + } + + public void setCertNo(String certNo) { + this.certNo = certNo; + } + + public Integer getSex() { + return sex; + } + + public void setSex(Integer sex) { + this.sex = sex; + } + + public String getVcCardNo() { + return vcCardNo; + } + + public void setVcCardNo(String vcCardNo) { + this.vcCardNo = vcCardNo; + } + + public String getValueOne() { + return valueOne; + } + + public void setValueOne(String valueOne) { + this.valueOne = valueOne; + } + + public String getPhone() { + return phone; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getValueTwo() { + return valueTwo; + } + + public void setValueTwo(String valueTwo) { + this.valueTwo = valueTwo; + } + + public Integer getValueType() { + return valueType; + } + + public void setValueType(Integer valueType) { + this.valueType = valueType; + } + + public Date getRecordTimeStart() { + return recordTimeStart; + } + + public void setRecordTimeStart(Date recordTimeStart) { + this.recordTimeStart = recordTimeStart; + } + + public Date getRecordTimeEnd() { + return recordTimeEnd; + } + + public void setRecordTimeEnd(Date recordTimeEnd) { + this.recordTimeEnd = recordTimeEnd; + } + + public String getWxCode() { + return wxCode; + } + public void setWxCode(String wxCode) { + this.wxCode = wxCode; + } + + public Integer getRecordCount() { + return recordCount; + } + + public void setRecordCount(Integer recordCount) { + this.recordCount = recordCount; + } + + public String getOpenId() { + return openId; + } + + public void setOpenId(String openId) { + this.openId = openId; + } + + public Date getCreated() { + return created; + } + + public void setCreated(Date created) { + this.created = created; + } + + public Date getModified() { + return modified; + } + + public void setModified(Date modified) { + this.modified = modified; + } + + public String getQueryNo() { + return queryNo; + } + + public void setQueryNo(String queryNo) { + this.queryNo = queryNo; + } public Integer getId() { return id; diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MeasureInfoController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MeasureInfoController.java new file mode 100644 index 0000000..871f885 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MeasureInfoController.java @@ -0,0 +1,44 @@ +package com.lyms.platform.operate.web.controller; + +import com.lyms.platform.common.annotation.TokenRequired; +import com.lyms.platform.common.base.BaseController; +import com.lyms.platform.common.result.BaseListResponse; +import com.lyms.platform.operate.web.facade.MeasureInfoFacade; +import com.lyms.platform.operate.web.request.SmsTemplateRequest; +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.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * 测量血糖和脉搏、身高和体重的值 + * + * Created by Administrator on 2018-01-10. + */ +@Controller +public class MeasureInfoController extends BaseController { + + @Autowired + private MeasureInfoFacade measureInfoFacade; + /** + * 血糖和脉搏 身高和体重的值列表 + * valueType 值类型: 1 身高、体重 2 血压和脉搏 + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/queryMeasureInfoList") + @ResponseBody + @TokenRequired + public BaseListResponse querySmsTemps(@RequestParam(value = "queryNo", required = false) String queryNo, + @RequestParam("page") Integer page, + @RequestParam("limit") Integer limit, + @RequestParam("valueType") Integer valueType, + @RequestParam(value = "certNo", required = false) String certNo, + @RequestParam(value = "recordTime", required = false) String recordTime, + @RequestParam(value = "age", required = false) Integer age + ) { + return measureInfoFacade.queryMeasureInfoList(queryNo,valueType,certNo,recordTime,age,page,limit); + } + +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MeasureInfoFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MeasureInfoFacade.java new file mode 100644 index 0000000..c4d0ffc --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MeasureInfoFacade.java @@ -0,0 +1,52 @@ +package com.lyms.platform.operate.web.facade; + +import com.lyms.platform.biz.service.MatDeliverService; +import com.lyms.platform.biz.service.MeasureInfoService; +import com.lyms.platform.common.constants.ErrorCodeConstants; +import com.lyms.platform.common.result.BaseListResponse; +import com.lyms.platform.common.utils.DateUtil; +import com.lyms.platform.pojo.MeasureInfoModel; +import com.lyms.platform.query.MeasureInfoQuery; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * Created by Administrator on 2018-01-10. + */ +@Component +public class MeasureInfoFacade { + @Autowired + private MeasureInfoService measureInfoService; + + + public BaseListResponse queryMeasureInfoList(String queryNo, + Integer valueType, String certNo, + String recordTime, Integer age, + Integer page, Integer limit) { + + MeasureInfoQuery query = new MeasureInfoQuery(); + query.setQueryNo(queryNo); + query.setValueType(valueType); + query.setLimit(limit); + query.setPage(page); + query.setAge(age); + query.setCertNo(certNo); + if (StringUtils.isNotEmpty(recordTime)) { + String[] dates = recordTime.split(" - "); + query.setRecordTimeStart(DateUtil.parseYMD(dates[0])); + if (dates.length == 2) { + query.setRecordTimeEnd(DateUtil.parseYMDHMS(dates[1] + " 23:59:59")); + } + } + List list = measureInfoService.queryMeasureInfoList(query); + BaseListResponse objectResponse = new BaseListResponse(); + objectResponse.setData(list); + objectResponse.setPageInfo(query.getPageInfo()); + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + objectResponse.setErrormsg("成功"); + return objectResponse; + } +} diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java index 37732a2..610ba1a 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/SyncDataTaskService.java @@ -100,7 +100,6 @@ public class SyncDataTaskService { @Qualifier("commonThreadPool") private ThreadPoolTaskExecutor commonThreadPool; - private Executor pool = Executors.newFixedThreadPool(5); /** * 该方法是区域或者单体医院部署的把数据定时往某个环境上传 @@ -131,33 +130,52 @@ public class SyncDataTaskService { { for (final String url : urls.keySet()) { - try{ - System.out.println(DateUtil.getyyyy_MM_dd_hms(new Date()) +" ; request url = " + url); - String json = excePost("https://" + url + "/findSyncData", new HashMap()); - if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(json)) - { - List list = JsonUtil.toList(json, SyncDataModel.class); - System.out.println(DateUtil.getyyyy_MM_dd_hms(new Date())+url+" ; syncdata size = "+ list.size()); - if (CollectionUtils.isNotEmpty(list)) - { - StringBuffer ids = new StringBuffer(); - for (SyncDataModel model : list) { - boolean boo = mongoSyncService.syncData(model.getAction(), model.getDataId(), model.getClassName(), model.getJsonData()); - if (boo) { - ids.append(model.getId()); - ids.append(","); + commonThreadPool.execute(new Runnable() { + @Override + public void run() { + try{ + System.out.println(DateUtil.getyyyy_MM_dd_hms(new Date()) +" ; request url = " + url); + String json = HttpClientUtil.doPost("https://"+url+"/findSyncData", new HashMap(), "utf-8"); + if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(json)) + { + List list = JsonUtil.toList(json, SyncDataModel.class); + System.out.println(DateUtil.getyyyy_MM_dd_hms(new Date())+url+" ; syncdata size = "+ list.size()); + int batchSize = 200; + int end = 0; + for (int i = 0; i < list.size(); i += batchSize) { + end = (end + batchSize); + if (end > list.size()) { + end = list.size(); + } + final List tempList = list.subList(i, end); + commonThreadPool.execute(new Runnable() { + @Override + public void run() { + if (CollectionUtils.isNotEmpty(tempList)) + { + StringBuffer ids = new StringBuffer(); + for (SyncDataModel model : tempList) { + boolean boo = mongoSyncService.syncData(model.getAction(), model.getDataId(), model.getClassName(), model.getJsonData()); + if (boo) { + ids.append(model.getId()); + ids.append(","); + } + } + if (ids.length() > 0) { + Map params = new HashMap(); + params.put("ids", ids.toString()); + HttpClientUtil.doPost("https://" + url + "/updateSyncData", params, "utf-8"); + } + } + } + }); } } - if (ids.length() > 0) { - Map params = new HashMap(); - params.put("ids", ids.toString()); - excePost("https://" + url + "/updateSyncData", params); - } + }catch(Exception ex){ + ExceptionUtils.catchException(ex, url+": syncData Error."); } } - }catch(Exception ex){ - ExceptionUtils.catchException(ex, url+": syncData Error."); - } + }); } } -- 1.8.3.1