From f16593646bb0f320f5316537fc08a8b90370ab51 Mon Sep 17 00:00:00 2001 From: baohanddd Date: Tue, 2 Aug 2016 16:24:11 +0800 Subject: [PATCH] add statistics(map) common index (area data) --- .../lyms/platform/biz/BasicConfigServiceTest.java | 118 ++++++++++++++++++++- .../com/lyms/platform/biz/dal/IGuidelinesDao.java | 32 ++++++ .../platform/biz/dal/impl/GuidelinesDaoImpl.java | 60 +++++++++++ .../platform/biz/service/GuidelinesService.java | 72 +++++++++++++ .../src/main/resources/database.properties | 8 +- .../java/com/lyms/platform/pojo/Guidelines.java | 94 ++++++++++++++++ .../com/lyms/platform/query/GuidelinesQuery.java | 109 +++++++++++++++++++ 7 files changed, 485 insertions(+), 8 deletions(-) create mode 100644 platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IGuidelinesDao.java create mode 100644 platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/GuidelinesDaoImpl.java create mode 100644 platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/GuidelinesService.java create mode 100644 platform-dal/src/main/java/com/lyms/platform/pojo/Guidelines.java create mode 100644 platform-dal/src/main/java/com/lyms/platform/query/GuidelinesQuery.java diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java index b07a421..661a0b4 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java @@ -1,18 +1,22 @@ package com.lyms.platform.biz; +import java.io.File; +import java.io.IOException; import java.text.SimpleDateFormat; import java.util.*; -import com.lyms.platform.pojo.DataPermissionsModel; +import com.lyms.platform.biz.service.GuidelinesService; +import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.utils.JsonUtil; +import com.lyms.platform.common.utils.SystemConfig; +import com.lyms.platform.pojo.*; +import org.apache.commons.io.FileUtils; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.lyms.platform.biz.service.BabyService; import com.lyms.platform.biz.service.PuerperaService; import com.lyms.platform.biz.service.VisitService; -import com.lyms.platform.pojo.BabyModel; -import com.lyms.platform.pojo.PuerperaModel; -import com.lyms.platform.pojo.VisitModel; import com.lyms.platform.query.PuerperaModelQuery; import org.springframework.data.mongodb.core.MongoTemplate; @@ -71,7 +75,111 @@ public class BasicConfigServiceTest { System.out.println(users2.toString()); }*/ // addDataPermission(applicationContext); - addVisit(applicationContext); +// addVisit(applicationContext); + addKidsGuidelines(applicationContext); + } + + public static void addKidsGuidelines(ApplicationContext applicationContext) { + MongoTemplate mongoTemplate + =(MongoTemplate)applicationContext.getBean("mongoTemplate"); + mongoTemplate.getDb().authenticate("platform", "platform123".toCharArray()); + Set set = mongoTemplate.getCollectionNames(); + for (String s:set) { + System.out.println(s); + } + try { + List list = FileUtils.readLines(new File("E:\\temp\\儿童指导意见.csv")); + int i=0; + for (String line:list) { + i++; + String[] array = line.split(","); + if (array.length == 3) { + Guidelines guidelines = new Guidelines(); + guidelines.setYn(YnEnums.YES.getId()); + guidelines.setCategory(array[1]); + guidelines.setContent(array[2]); + guidelines.setType(3); + guidelines.setStart(Integer.valueOf(array[0])); + guidelines.setEnd(guidelines.getStart()); + System.out.println(i+" == "+JsonUtil.obj2JsonString(guidelines)); + mongoTemplate.save(guidelines); + } + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + public static void addGuidelines(ApplicationContext applicationContext) { + MongoTemplate mongoTemplate + =(MongoTemplate)applicationContext.getBean("mongoTemplate"); + mongoTemplate.getDb().authenticate("platform", "platform123".toCharArray()); + Set set = mongoTemplate.getCollectionNames(); + for (String s:set) { + System.out.println(s); + } + try { + List list = FileUtils.readLines(new File("E:\\temp\\孕产报告指导意见.csv")); + int i=0; + for (String line:list) { + i++; + String[] array = line.split(","); + if (line.startsWith("孕")) { + if (array.length == 3) { + Guidelines guidelines = new Guidelines(); + guidelines.setYn(YnEnums.YES.getId()); + guidelines.setCategory(array[1]); + guidelines.setContent(array[2]); + guidelines.setType(1); + String[] subArray = array[0].split("-|—"); + if (subArray.length == 2) { + guidelines.setStart(Integer.valueOf(subArray[0].replace("孕","").replace("周",""))); + guidelines.setEnd(Integer.valueOf(subArray[1].replace("孕","").replace("周",""))); + } else { + guidelines.setStart(Integer.valueOf(array[0].replace("孕","").replace("周",""))); + guidelines.setEnd(guidelines.getStart()); + } +//TODO mongoTemplate.save(guidelines); + } + } else if (line.startsWith("产后")) { + if (array.length == 3) { + Guidelines guidelines = new Guidelines(); + guidelines.setYn(YnEnums.YES.getId()); + guidelines.setCategory(array[1]); + guidelines.setContent(array[2]); + guidelines.setType(2); + if (array[0].endsWith("剖宫产")) { + array[0] = array[0].replace("——剖宫产", ""); + guidelines.setDeliveryType("2"); + } else if (array[0].endsWith("顺产")) { + array[0] = array[0].replace("——顺产", ""); + guidelines.setDeliveryType("1"); + } + String[] subArray = array[0].split("-|—"); + if (subArray.length == 2) { + guidelines.setStart(Integer.valueOf(subArray[0].replace("产后","").replace("天",""))); + guidelines.setEnd(Integer.valueOf(subArray[1].replace("产后","").replace("天",""))); + } else { + guidelines.setStart(Integer.valueOf(array[0].replace("产后","").replace("天",""))); + guidelines.setEnd(guidelines.getStart()); + } + if (guidelines.getDeliveryType() == null) { + // 存两个 + guidelines.setDeliveryType("1"); + mongoTemplate.save(guidelines); + guidelines.setDeliveryType("2"); + guidelines.setId(null); + mongoTemplate.save(guidelines); + } else { + mongoTemplate.save(guidelines); + } + System.out.println(i + " == " + JsonUtil.obj2JsonString(guidelines)); + } + } + } + } catch (IOException e) { + e.printStackTrace(); + } } public static void addDataPermission(ApplicationContext applicationContext){ diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IGuidelinesDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IGuidelinesDao.java new file mode 100644 index 0000000..d4024c1 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IGuidelinesDao.java @@ -0,0 +1,32 @@ +package com.lyms.platform.biz.dal; + +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.common.dao.operator.Page; +import com.lyms.platform.pojo.BasicConfig; +import com.lyms.platform.pojo.Guidelines; + +import java.util.Collection; +import java.util.List; + +/** + * Created by Administrator on 2016/8/2 0002. + */ +public interface IGuidelinesDao { + + public Guidelines addGuidelines(Guidelines obj); + + public void updateGuidelines(Guidelines obj, String id); + + public void deleteGuidelines(String id); + + public Guidelines getGuidelines(String id); + + public int queryGuidelinesCount(MongoQuery query); + + public List queryGuidelines(MongoQuery query); + + public Page findPage(MongoQuery query); + + public Guidelines getOneGuidelinesById(String id); + +} diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/GuidelinesDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/GuidelinesDaoImpl.java new file mode 100644 index 0000000..22bcab1 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/GuidelinesDaoImpl.java @@ -0,0 +1,60 @@ +package com.lyms.platform.biz.dal.impl; + +import com.lyms.platform.biz.dal.IBasicConfigDao; +import com.lyms.platform.biz.dal.IGuidelinesDao; +import com.lyms.platform.common.dao.BaseMongoDAOImpl; +import com.lyms.platform.common.dao.operator.MongoCondition; +import com.lyms.platform.common.dao.operator.MongoOper; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.common.dao.operator.Page; +import com.lyms.platform.pojo.BasicConfig; +import com.lyms.platform.pojo.Guidelines; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * Created by Administrator on 2016/8/2 0002. + */ +@Repository("guidelinesDao") +public class GuidelinesDaoImpl extends BaseMongoDAOImpl implements IGuidelinesDao { + @Override + public Guidelines addGuidelines(Guidelines obj) { + return save(obj); + } + + @Override + public void updateGuidelines(Guidelines obj, String id) { + update(new MongoQuery(new MongoCondition("id", id, MongoOper.IS)).convertToMongoQuery(), obj); + } + + @Override + public void deleteGuidelines(String id) { + delete(new MongoQuery(new MongoCondition("id", id, MongoOper.IS)).convertToMongoQuery()); + } + + @Override + public Guidelines getGuidelines(String id) { + return findById(id); + } + + @Override + public int queryGuidelinesCount(MongoQuery query) { + return (int) count(query.convertToMongoQuery()); + } + + @Override + public List queryGuidelines(MongoQuery query) { + return find(query.convertToMongoQuery()); + } + + @Override + public Page findPage(MongoQuery query) { + return findPage(query.convertToMongoQuery()); + } + + @Override + public Guidelines getOneGuidelinesById(String id) { + return findById(id); + } +} diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/GuidelinesService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/GuidelinesService.java new file mode 100644 index 0000000..38f1016 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/GuidelinesService.java @@ -0,0 +1,72 @@ +package com.lyms.platform.biz.service; + +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; +import com.lyms.platform.biz.dal.IGuidelinesDao; +import com.lyms.platform.common.dao.operator.MongoCondition; +import com.lyms.platform.common.dao.operator.MongoOper; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.common.dao.operator.Page; +import com.lyms.platform.common.enums.YnEnums; +import com.lyms.platform.common.utils.CacheHelper; +import com.lyms.platform.pojo.BasicConfig; +import com.lyms.platform.pojo.Guidelines; +import com.lyms.platform.query.BasicConfigQuery; +import com.lyms.platform.query.GuidelinesQuery; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; + +import java.util.Collection; +import java.util.List; + +/** + * Created by Administrator on 2016/8/2 0002. + */ +@Service("guidelinesService") +public class GuidelinesService implements InitializingBean { + + private LoadingCache cached=null; + + @Autowired + private IGuidelinesDao guidelinesDao; + + public void addGuidelines(Guidelines obj) { + guidelinesDao.addGuidelines(obj); + } + + public void updateGuidelines(Guidelines obj) { + guidelinesDao.updateGuidelines(obj, obj.getId()); + } + + public List queryGuidelines(GuidelinesQuery guidelinesQuery) { + MongoQuery query = guidelinesQuery.convertToQuery(); + if (StringUtils.isNotEmpty(guidelinesQuery.getNeed())) { + guidelinesQuery.mysqlBuild(guidelinesDao.queryGuidelinesCount(guidelinesQuery.convertToQuery())); + query.start(guidelinesQuery.getOffset()).end(guidelinesQuery.getLimit()); + } + + return guidelinesDao.queryGuidelines(query.addOrder(Sort.Direction.ASC, "id")); + } + + public Guidelines getOneGuidelinesById(String id) { + try{ + return cached.get(id); + }catch (Exception e){ + } + return null; + } + + @Override + public void afterPropertiesSet() throws Exception { + //cache size 为400 缓存3分钟 + cached = CacheHelper.cached(new CacheLoader() { + @Override + public Guidelines load(String key) throws Exception { + return guidelinesDao.getOneGuidelinesById(key); + } + }, 400, 3); + } +} diff --git a/platform-biz-patient-service/src/main/resources/database.properties b/platform-biz-patient-service/src/main/resources/database.properties index ddfb82a..a881713 100644 --- a/platform-biz-patient-service/src/main/resources/database.properties +++ b/platform-biz-patient-service/src/main/resources/database.properties @@ -1,3 +1,5 @@ -mongo.db.host=localhost -mongo.db.port=27017 -mongo.db.dbname=platform \ No newline at end of file +mongo.db.host=119.90.57.26 +mongo.db.port=10001 +mongo.db.dbname=platform +mongo.db.username=platform +mongo.db.password=platform123 \ No newline at end of file diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/Guidelines.java b/platform-dal/src/main/java/com/lyms/platform/pojo/Guidelines.java new file mode 100644 index 0000000..f74b60a --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/Guidelines.java @@ -0,0 +1,94 @@ +package com.lyms.platform.pojo; + +import com.lyms.platform.common.result.BaseModel; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; + +/** + * Created by Administrator on 2016/8/2 0002. + * 基础项配置 + */ +@Document(collection="lyms_guidelines") +public class Guidelines extends BaseModel { + + private static final long serialVersionUID = 1L; + @Id + private String id; + /* 1:孕期,2:产后,3:儿童 */ + private Integer type; + + /*分娩方式 FmTypeEnums*/ + private String deliveryType; + + /* 孕期:周;产后:天;儿童:月 */ + private Integer start; + private Integer end; + + private String category; + private String content; + private Integer yn; + + public String getDeliveryType() { + return deliveryType; + } + + public void setDeliveryType(String deliveryType) { + this.deliveryType = deliveryType; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public Integer getStart() { + return start; + } + + public void setStart(Integer start) { + this.start = start; + } + + public Integer getEnd() { + return end; + } + + public void setEnd(Integer end) { + this.end = end; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public Integer getYn() { + return yn; + } + + public void setYn(Integer yn) { + this.yn = yn; + } +} diff --git a/platform-dal/src/main/java/com/lyms/platform/query/GuidelinesQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/GuidelinesQuery.java new file mode 100644 index 0000000..a2fb368 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/query/GuidelinesQuery.java @@ -0,0 +1,109 @@ +package com.lyms.platform.query; + +import com.lyms.platform.common.base.IConvertToNativeQuery; +import com.lyms.platform.common.dao.BaseQuery; +import com.lyms.platform.common.dao.operator.MongoCondition; +import com.lyms.platform.common.dao.operator.MongoOper; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.common.enums.YnEnums; + +/** + * Created by Administrator on 2016/8/2 0002. + */ +public class GuidelinesQuery extends BaseQuery implements IConvertToNativeQuery { + + @Override + public MongoQuery convertToQuery() { + MongoCondition condition = MongoCondition.newInstance("yn", YnEnums.YES.getId(), MongoOper.IS); + if (null != id) { + condition = condition.and("id", id, MongoOper.IS); + } + if (null != type) { + condition = condition.and("type", type, MongoOper.IS); + } + if (null != deliveryType) { + condition = condition.and("deliveryType", deliveryType, MongoOper.IS); + } + if (null != maxStart) { + condition = condition.and("start", maxStart, MongoOper.LTE); + } + if (null != minStart) { + condition = condition.and("start", minStart, MongoOper.GTE); + } + if (null != maxEnd) { + condition = condition.and("end", maxEnd, MongoOper.LTE); + } + if (null != minEnd) { + condition = condition.and("end", minEnd, MongoOper.GTE); + } + return condition.toMongoQuery(); + } + + private String id; + /* 1:孕期,2:产后,3:儿童 */ + private Integer type; + + /* 孕期:周;产后:天;儿童:?TODO */ + private Integer maxStart; + private Integer minStart; + private Integer maxEnd; + private Integer minEnd; + /*分娩方式 FmTypeEnums*/ + private String deliveryType; + + public String getDeliveryType() { + return deliveryType; + } + + public void setDeliveryType(String deliveryType) { + this.deliveryType = deliveryType; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public Integer getMaxStart() { + return maxStart; + } + + public void setMaxStart(Integer maxStart) { + this.maxStart = maxStart; + } + + public Integer getMinStart() { + return minStart; + } + + public void setMinStart(Integer minStart) { + this.minStart = minStart; + } + + public Integer getMaxEnd() { + return maxEnd; + } + + public void setMaxEnd(Integer maxEnd) { + this.maxEnd = maxEnd; + } + + public Integer getMinEnd() { + return minEnd; + } + + public void setMinEnd(Integer minEnd) { + this.minEnd = minEnd; + } +} -- 1.8.3.1